about冒泡的那些事
看了 http://www.cnblogs.com/fuhongxue2011/archive/2011/05/25/2056775.html的文章
我自己也写了个冒泡排序
<script> var temp; var arr=new Array(7,3,9,5,4,1); for (var i=0;i<arr.length;i++) { for(var j=i+1;j<arr.length;j++) { if(arr[i]<arr[j]) { temp=arr[i]; arr[i]=arr[j]; arr[j]=temp; } } } for (var i=0;i<arr.length;i++) { alert(arr[i]); } </script>
arr[i]<arr[j] 这时候是冒泡降序
arr[i]>arr[j]这时候是冒泡升序
谨以此文留以纪念
详解:
第一个for循环从0开始 第二个for循环从1开始
第二个for循环的作用是 拿每一个i的值和所有比较 然后符合条件 进行交换 否则不交换 然后进行 i+1 重复比较
if(arr[i]<arr[j])//符合前一个数小于后一个数进行下边的交换 { temp=arr[i];//小的数交给临时变量 arr[i]=arr[j];//大的数替换给小的数的位置 arr[j]=temp;//临时变量中的小的数替换大的数的位置 }
比如 7,3,9
第一次:7(i=0)和3(j=1)比(不交换) 7(i=0)和9(j=2)比(交换) -->937(现在的顺序是973了)
i+1 j+1 之后
第二次:3(i=1)和7(j=2)比(交换) -->973(现在的顺序是973)
以为只有3个数 所以到此over