冒泡排序
冒泡排序是我们学习编程过程中必不可少的一种排序,也是我第一次学习的排序,当时记得老师只是让我们死记硬背,但是后来接触编程多了以后发现理解思想是最重还要的,我理解的冒泡排序是像泡泡一样一个接一个的排序。
首先要学习冒泡排序就要了解它的排序规则。
首先看上图有五个数据(顺序无所谓),我们从上面图可知,是将第一个数据和第二个数据进行排序,如果数据1大于数据2,则要进行数据的交换,如果数据1小于数据2,则不变。 因此,我们可以看出第一趟进行4次,第二趟就需要执行3次,第三趟需要执行两次,第四趟需要一次
但是我们需要知道它需要进行4趟,长度为arr.length-1,交换次数为4,3,2,1。
索引 |
交换次数 |
规律 |
0 |
4 |
4-0(arr.length-1-i) |
1 |
3 |
4-1 |
2 |
2 |
4-2 |
3 |
1 |
4-3 |
由此可知,交换次数与执行趟数的关系为arr.length-i-1。
如何交换两个数呢?
这里就需要借用到一个中间量,根据下图可以更好的理解。
var a=1;
var b=2;
var t;
t=a;
a=b;
b=t;
console.log(a,b)
然后进行冒泡排序
for(var i=0;i<=arr.length;i++){ //外层循环,用来控制趟数
for(var j=0;j<=arr.length-i-1;j++){ //里层循环,用来控制交换次数
if(arr[j]>arr[j+1]){
temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
console.log(arr);
以上就是简单学习的冒泡排序,如果有不对的地方,恳请指正。