冒泡排序
通俗来讲,冒泡排序就是:(若从大到小排)
我们随便定义一个数组 [45, 4, -3, 8, 22, 1],
这些数在数组里的位置分别是 0 1 2 3 4 5
首先 0 位置和 1 位置比,将小的放在 1 位置 ;
1 位置和 2 位置比,将小的放在 2 位置;
依次类推,最后最小的在最后面;
然后再将0 位置和 1 位置比,将小的放在 1 位置 ;
1 位置和 2 位置比,将小的放在 2 位置;
这样到最后,第二小的在倒数第二的位置;
以此类推,完成冒泡排序。
我用 js 来实现:
const arr = [45, 4, -3, 8, 22, 1];
for (let i = 0; i < arr.length; i++){
for (let j = 0; j < arr.length-i-1; j++){
if(arr[j] < arr[j+1]){
let temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
console.log(arr);
结果如下:
选择排序
通俗来讲,选择排序就是:(若从大到小排)
我们随便定义一个数组 [45, 4, -3, 8, 22, 1],
这些数在数组里的位置分别是 0 1 2 3 4 5
首先 0 位置和 1 位置比,将大的放在 0 位置 ;
0 位置和 2 位置比,将大的放在 0 位置;
依次类推,最后最大的在最前面;
然后再将 1 位置和 2 位置比,将大的放在 1 位置 ;
1 位置和 3 位置比,将大的放在 1 位置;
这样到最后,第二大的在第二的位置;
以此类推,完成选择排序。
我用 js 来实现:
const arr = [45, 4, -3, 8, 22, 1];
for (let i = 0; i < arr.length-1; i++){
for (let j = i + 1; j < arr.length; j++){
if(arr[i] < arr[j]){
let temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
console.log(arr);
结果如下: