黑马程序员技术交流社区

标题: 冒泡排序的区别 [打印本页]

作者: hansuchang    时间: 2016-7-22 18:24
标题: 冒泡排序的区别
看到视频JAVASCRIPT 基础加强 出现的问题两种不一样 一种视频中老师说  
另外一种我自己之前做的  完了看老师写的时候有点懵逼 不怎么懂



var array = [21, 34, 65, 778, 99, 90, 1];
    var s = 0;  //外循环次数
    var s1 = 0;//内循环次数
    //排序循环 用for循环
    //第一层for循环控制循环躺数
    for (i = 0; i < array.length -i; i++) {
        //第二层循环控制数组之间比较的次数
        for (j = 0; j < array.length -1- i; j++) {
            //进项数组之间进行比较 判断
            if (array[j] > array[j + 1]) { //因为第一层循环是控制数组比较躺数不是每个数字的比较次数  所以这里是array[j]
                //判断之后进行交换位置
                var tmp = array[j];
                array[j] = array[j + 1];
                array[j + 1] = tmp;

            }
            s1++;
        }
        s++;
    }
    console.log("外循环次数" + s);
    console.log("内循环次数" + s1);
    console.log(array);
这是我自己写的   得到的结果C:\Users\hsc\Desktop
作者: hansuchang    时间: 2016-7-22 18:25
这个是视频中老师写的


//循环控制趟数
        var s = 0;
        var s1 = 0;

        //为什么 isSort = true,不能写在循环外面
        //因为 交换位置 isSort = false.  isSort的值永远是false 。我们要检测的是某一趟是否交换位置

        for (var i = 0; i < array.length - 1; i++) {
            var isSort = true; //假设排序ok
            //控制两两比较的次数       1--6      2--5   4 3 2 1
            for (var j = 0; j < array.length - 1 - i; j++) {
                //两两比较   从小到大排序

                //如果交换位置,说明没有排序好,如果不交换位置,说明排序好
                if (array[j] > array[j + 1]) {
                    isSort = false;  //没有排序好呢
                    //交换位置
                    var tmp = array[j];
                    array[j] = array[j + 1];
                    array[j + 1] = tmp;
                }

                s++; //记录内循环的次数
            }
            s1++;  //记录外循环的次数

            if(isSort) {
                //如果排序好了
                break;
            }
        }

        console.log("内循环的次数" + s);
        console.log("外循环的次数" + s1);
        console.log(array);
两个得到的结果一样
作者: hansuchang    时间: 2016-7-22 18:26
两种得到的结果一样    求大神给解答有啥区别 我这种写的正确吗  有没有问题
作者: hansuchang    时间: 2016-7-22 18:29
现在是好多东西我自己能写出来   但是很多我搞不懂怎么出来的
作者: wjk930726    时间: 2016-7-22 23:48
感觉没啥问题,估计老师那种更具普世性吧
作者: SwallowJin    时间: 2016-7-24 09:27
这有什么区别啊 就是多了var 弱类型没办法
作者: Zilu丶yue    时间: 2016-7-26 22:42
哇哦。。。
作者: Zilu丶yue    时间: 2016-7-26 22:44
弱类型Var也是java中的么?不是js中的么?求大神指教
作者: hansuchang    时间: 2016-7-29 19:45
SwallowJin 发表于 2016-7-24 09:27
这有什么区别啊 就是多了var 弱类型没办法

不咋懂。。。。。。。。。。。。。。。。。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2