今天学习了下冒泡排序,本来是想等着明年找工作之前再学,这样不容易忘,不过今天看视频学了之后顺便记录下。
所谓冒泡排序,就是将一串数组从小到大或者从大到小排序,总体来说冒泡排序难度不大。
基本算法思想:
将数字第一个数字A拿来与其他的数字作比较,如果发现A比某一个数字大(小),则交换两个数字的位置,依次循环,直到将数组遍历完。
例:
将: 【5 4 3 2 1 】 从小到大排序
第一轮比较: 4 3 2 1 5 比较的次数为4 array.lenth-1-0
第二轮比较: 3 2 1 4 5 比较的次数为3(因为4与5第一轮已经比较过的,因此这里不用再比较) array.lenth -1-1
第三轮比较: 2 1 3 4 5 比较的次数为2 array.lenth -1-2
第四轮比较: 1 2 3 4 5 比较的次数为1 array.lenth -1-3
这样,这个冒泡排序的算法已经完成,总共经历了四轮(array - 1)的比较。
下面附上代码:
var array = [0, 30, 20, 10, 50, 40];
//控制循环的轮数,
for (var i = 0; i < array.length; i++) {
//控制每一轮里面比较的次数
for (var j = 0; j < array.length - 1 - i; j++) {
if (array[j] > array[j + 1]) {
//交换两个数的值。
var temp = array[j];
array[j] = array[j + 1];
array[j + 1] = temp;
}
}
}
console.log(array);