冒泡排序
冒泡排序是所有相邻两个进行比较,如果第一个比第二个大,则交换他们,每一次循环都能将一个元素放在合适的位置上。O(N²)
//先写一个交换函数
function swap(array, m, n){
[array[m], array[n]]=[array[n] ,[array[m]]
}
//冒泡排序
function bubbleSort(array){
let size = array.length
//循环数组中的每个元素
for(let j = 0; j < size; j++){
//进行一次循环的比较
for(let i = 0; i < size - 1 - j; i++){
if(array[i] > array[i + 1]){
swap(array, i, i + 1)
}
}
}
}
选择排序
选择排序是指每一次都寻找到最小值,然后直接进行最小值与第一位进行交换,然后再进行寻找第二小的值,并于第二位的数字进行交换,起本质再交换的次数上是O(N),但是比较次数还是O(N²),总体还是O(N²)
function selectSort(array){
let size = ayyay.length
let minIndex = 0
for(let i = 0; i < size - 1; i++){
minIndex = i
//进行一次循环的寻找
for(let j = 0; j < size; j++){
if(array[minIndex] > arryy[j]){
minIndex = j
}
}
if(i !== minIndex){
swap(array, minIndex , i)
}
}
return array
}