冒泡排序:相邻的两个单位,比较存储的数据.如果第一个单元的数据较大,就将两个相邻单元,交换存储数据
var a = [3, 5, 2, 44, 22, 9, 77];
//循环次数是数组单元个数-1
for (var i = 0; i < a.length- 1; i++) {
// 上一次比较出的数值,不参与下一次循环 -j
for (var j = 0; j < a.length - 1 -i; j++) {
if (a[j] > a[j + 1]) {
var temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
}
}
}
console.log(a);
选择排序:在未排序序列中找到最小(大)的元素,存到起始位置,再从剩余未排序元素继续找最小(大)的元素,放到已排序列末尾,重复直至拍完
var b = [3,7,33,2,88,66,99,11,0];
for(var m=0;m<b.length-1;m++){
var min=m;//先默认起始位置就是最小值位置,存储起始位置的索引,也就是 m
for(var n=m+1;n<b.length;n++){
if(b[n]<b[min]){
//存储当前较小值的索引下标
min=n;
}
}
//将找到的最小值和m位置所在的值进行交换
if(m!=min){
var tem=b[m];
b[m]=b[min];
b[min]=tem;
}
}
console.log(b);
</script>
逆战班