冒泡排序与选择排序
这是我在逆战班学习的第六周,本周我们开始学习了更深一点的JavaScript。
更深度的学习了冒泡排序和选择排序,下面我来介绍下这两种常用的排序。
冒泡排序是根据相邻两个数组中的数据数值大小来进行比较,通过交换数组单位中的数值来把较大的一个放在后面,最后依次循环比较,来将最大的数放到最后面,这样再这个环节依次循环,来达到整个数组从小到大的顺序排列。
下面是冒泡排序的参考代码:
var pao = [2, 1, 3, 10, 5, 77, 55];
for (var k = 0; k <= pao.length - 2; k++) {
for (let l = 0; l <= pao.length - 2; l++) {
if (pao[l] > pao[l + 1]) {
var b = 0;
b = pao[l];
pao[l] = pao[l + 1];
pao[l + 1] = b;
}
}
}
console.log(pao);
选择排序和冒泡排序有着本质的差别,选择排序不是交换数值,而是将整个数组中数值最小的一个数组单元拿到最前面,再将第二小的拿到第二个位置,挑出最小的数组单位,看他的数组索引是不是第一个,如果不是,和第一个调换。这就是选择排序,改变数组单元的索引,而不是改变数组单元的数值。
下面是选择排序的参考代码:
var arr = [2,1,3,10,5,77,55,88,14,56,8,22,31,99,100];
for(var j = 0; j <= arr.length-1-1;j++){
var min = j;
for(var i = j+1;i <= arr.length-1;i++){
if(arr[min]>arr[i]){
min = i;
}
}
if(min != j){
var a = 0;
a = arr[j];
arr[j] = arr[min];
arr[min] = a;
}
}
console.log(arr);