js 冒泡排序


算法:假设有n个人排成一行,每人手里都有一个数字,第一个人跟后一个人说你手里的数学比我小(大)吗?回答说小,两个人就互换了位置,一队下来是n-1次比较,
    最终使得最后一个人手里的数字是最小(大)的。即 每一小循环(轮)确定一个最小或最大的数!
代码: 假设,总比较数量有s个数,当轮要比较数n=(s-i)个,则得比较s-1轮(外层循环),每轮比较n-1次(内层循环)

        var arr=[311,42,33,5,21,6,7,312];
        console.log(arr); 
        for (var i=0;i<arr.length-1;i++){ // 轮:s-1轮
            for (var j=0;j<arr.length-i-1;j++){ //比较次数: (s-i)-1比较次数
                if(arr[j]>arr[j+1]){//交换逻辑
                    var sub=arr[j+1];
                    arr[j+1]=arr[j];
                    arr[j]=sub;
                }
            }
        }
        console.log(arr);

点击查看代码


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM