冒泡排序
function Sort(array) {
for (i=0;i<array.length-1;i++){
for (j=0;j<array.length-1-i;j++){
if (array[j]>array[j+1]){
[array[j],array[j+1]]=[array[j+1],array[j]];
}
}
}
return array;
}
var arr=[3,44,38,5,47,15,36,26,27,2,46,4,19,50,48];
console.log(Sort(arr));
其中的 [array[j],array[j+1]]=[array[j+1],array[j]];可以写成
var m=array[j];
array[j]=array[j+1];
array[j+1]=m;
冒泡排序完成
插入排序
function insertionSort(array) {//插入排序
for (var i = 1; i < array.length; i++) { //次数
var key = array[i];
var j = i - 1;
while ( array[j] > key) {//前面这个数跟后面的数比较
array[j + 1] = array[j];//后面这个数赋值前面这个数
j--;
}
array[j + 1] = key;
}
return array;
}
var arr=[3,44,38,5,47,15,36,26,27,2,46,4,19,50,48];
console.log(insertionSort(arr));
插入排序易想错的地方:
while循环中的key为什么不能写成array[i]?
key是在循环中 他要一个固定的数字,而array[i]会随着循环的改变而改变。