zoukankan      html  css  js  c++  java
  • 排序算法——冒泡排序

    思路

    ① 遍历数组arr,对所有相邻的数字进行比较,若后边的数字大于前边的,则交换位置
    ② 经过第一步后,最大的数字已经冒泡在数组末尾了,就不用遍历了。对arr 索引区间在0~arr.length-1的部分重复步骤①
    ③ 不断重复步骤②直到区间范围为0~1,此时数组中所有数字都已经排序完毕
    另外,当某一次遍历没有任何元素交换顺序时,可以认为排序已经完成

    JavaScript实现

    /**
     * 冒泡排序
     * @param arr
     * @returns
     */
    function bubbleSort(arr){
        if(!(arr instanceof  Array)) return [];
        if(arr.length<=1) return arr;
        //over用来判断排序是否已经结束,若某一次遍历完后没有发生交换,说明已经结束
        var i, j,over;
        for(i=0;i<arr.length;i++){
            var over=true;
            //最后一个元素就不需要再和后边的元素比较了,后边没有了,所有要-1
            for(j=0;j<arr.length-i-1;j++){
                if(arr[j+1]<arr[j]){
                    arr.splice(j,0,arr.splice(j+1,1)[0]);
                    over=false;
                }
            }
            if(over){
                break;
            }
        }
        return arr;
    }
  • 相关阅读:
    22:django 配置详解
    21:序列化django对象
    20:django中的安全问题
    19:django 分页
    HTML 标签(一)
    流程图学习绘制
    HTTP原理
    终端的颜色代码
    Python 进程 线程总结
    Python Select模型
  • 原文地址:https://www.cnblogs.com/tzyy/p/4869249.html
Copyright © 2011-2022 走看看