算法详解:
以从小到大排序为例,冒泡排序法的思路是:
遍历原始数据,从第一个数开始,到倒数第二个数结束,比较这个数和下一个数的大小,如果这个数比下一个数大,则交换这两个数。
这样便可以将数据中最大的数转移到数组的最后。之后再次遍历原始数据,但是变为从第一个数开始,到倒数第三个数结束,比较这个数和下一个数的大小,如果这个数比下一个数大,则交换这两个数。这样便可以将第二大的数转移到数组的倒数第二位。
重复执行上述过程,一直到从第一个数开始,到第二个数结束,从而完成了排序过程。
由于这个循环过程就像泡泡上浮的过程,所以被称为冒泡排序法。
代码:
<script type="text/javascript">
var iop = [10,6,7,1,2,5];
function bubbleSort (oiop)
{
var max = iop.length - 1;
for (var j = 0; j < max; j++) {
// 声明一个变量,作为标志位
var po = true;
for (var i = 0; i < max - j; i++)
{
if (iop[i] > iop[i + 1])
{
var temp = iop[i];
iop[i] = iop[i + 1];
iop[i + 1] = temp;
po = false;
}
}
if (po)
{
break;
}
}
return iop;
}
bubbleSort(iop);
console.log(iop);//打印
</script>
冒泡排序总结:
- 外层 for 循环控制循环次数
- 内层 for 循环进行两数交换,找每次的最大数,排到最后
- 设置一个标志位,减少不必要的循环
这是我所学到的,所以我要分享给你们,希望可以帮助到你们。
以上就是我的分享,新手上道,请多多指教(大神勿喷)。