首页 > 编程语言 > 详细

0132 算法的概念、冒泡排序

时间:2020-01-04 14:02:38      阅读:86      评论:0      收藏:0      [点我收藏+]

算法:观察执行过程,找到规律,转为代码。

技术分享图片

        // 冒泡排序
        // var arr = [5, 4, 3, 2, 1];
        var arr = [4, 1, 2, 3, 5];
        // 外层循环管趟数 【5个元素,冒泡排序4趟,应该是arr.length - 2,结果一样】
        for (var i = 0; i <= arr.length - 1; i++) {
            for (var j = 0; j <= arr.length - i - 1; j++) { // 里面的循环管 每一趟的交换次数
                // 内部交换2个变量的值 前一个和后面一个数组元素相比较
                if (arr[j] < arr[j + 1]) {
                    var temp = arr[j];
                    arr[j] = arr[j + 1];
                    arr[j + 1] = temp;
                }
            }
            console.log(i);
        }
        console.log(arr);


        // 我的写法1
        var arr = [4, 1, 9, 2, 7, 3, 5];
        var len = arr.length;
        // i <= len - 2,i <= len - 1,结果都一样
        for (var i = 0; i <= len - 2; i++) {
            for (j = 0; j <= len - i - 1; j++) {
                if (arr[j] > arr[j + 1]) {
                    var temp = arr[j];
                    arr[j] = arr[j + 1];
                    arr[j + 1] = temp;
                }

            }
        }
        console.log(arr); // [1, 2, 3, 4, 5, 7, 9]


        我的写法2
        var arr = [4, 1, 9, 2, 7, 3, 5];
        var len = arr.length;

        for (var i = 0; i < len; i++) {
            var temp;
            for (var j = i; j < len; j++) {
                if (arr[j] > arr[j + 1]) {
                    temp = arr[j];
                    arr[j] = arr[j + 1];
                    arr[j + 1] = temp;
                }
            }
        }
        console.log(arr); // [1, 2, 3, 4, 5, 7, 9]

0132 算法的概念、冒泡排序

原文:https://www.cnblogs.com/jianjie/p/12148617.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!