冒泡排序(Bubble Sort)是重复走访要排序的数列,通过遍历操作不断比较两个相邻的元素,将值大的元素交换至右端。之后继续第二次遍历,将次大值交换至倒数第二位数,不断重复该操作直至排序完成。
若要将 数组arry[23, 54,2, 27] 按从小到大进行排序,则先比较arry[0]和arry[1],即23和54,由于23<54,无需进行位置交换 ,得到数组为arry[23, 54, 2,27];继续比较arry[1]和arry[2], 因为54>2,元素互换,得到的数组为arry[23, 2,54,27];继续比较arry[2]和arry[3],因为54>23,元素位置互换,得到数组为arry[23, 2, 27, 54]。至此,数组完成第一次排序遍历,已将该数组的最大值排序至最后段,接下去进行第二次遍历。
arry[0]>arry[1],元素互换,得到arry[2, 23, 27, 54]; 继续比较,arry[1]<arry[2],无需互换,得到数组为arry[2, 23 ,27 ,54],至此第二次遍历结束。
遍历次数为 arry.length-2。
<script> function mpFunction(){ var ary =[12,32,45,1,33,67,0,99,19,50,69]; for (var i = ary.length-1;i>0; i--){ var flag = false; for(var j = 0;j<i; j++){ if(ary[j]>ary[j+1]){ var tmp = ary[j]; ary[j] = ary[j+1]; ary[j+1] = tmp; flag = true; } } if (!flag) break; } //输出排序后的序列 for (var k = 0; k<ary.length; k++){ document.write(ary[k]+" "); } } </script>