冒泡排序

来源:互联网 发布:银河证券手机炒股软件 编辑:程序博客网 时间:2024/06/08 04:49

冒泡排序

1.最初版:

<script type="text/javascript">    var aArr = [19,2,12,3,78,520];    for (var j = 0;j < aArr.length - 1;j ++) {    //aArr.length-1是为了保证i+1时数组不越界        for (var i = 0;i < aArr.length - 1;i ++) {            if (aArr[i] > aArr[i+1]) {                var t = aArr[i];                aArr[i] = aArr[i+1];                aArr[i+1] = t;            }        }    }</script>

2.改进版-不比较每趟的最后一个数

<script type="text/javascript">//冒泡排序2改进版    var aArr = [19,2,12,3,78,520];    for (var j = 0;j < aArr.length - 1;j ++) {        for (var i = 0;i < aArr.length - 1 - j;i ++) {            if (aArr[i] > aArr[i+1]) {                var t = aArr[i];                aArr[i] = aArr[i+1];                aArr[i+1] = t;            }        }    }</script>

3.把冒泡排序封装成函数,可以通过compare函数进行正序或者逆序的选择

<script type="text/javascript">    //冒泡排序3改进版    function bubbleSort(aArr,func) {         for (var i = 0;i < aArr.length - 1;i ++) {            for (var j = 0;j < aArr.length - 1;j ++) {                if (func(aArr[i],aArr[i+1]) > 0) {                    var t = aArr[i];                    aArr[i] = aArr[i+1];                    aArr[i+1] = t;                }            }         }    }    function compare(x,y) /选择排序规则    {        return x - y;    }    var aArr = [19,2,12,3,78,520];     console.log(aArr);     bubbleSort(aArr,compare);     console.log(aArr);     </script>
原创粉丝点击