A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© hansuchang 中级黑马   /  2016-7-22 18:24  /  2000 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

看到视频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

8 个回复

倒序浏览
这个是视频中老师写的


//循环控制趟数
        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);
两个得到的结果一样
回复 使用道具 举报
两种得到的结果一样    求大神给解答有啥区别 我这种写的正确吗  有没有问题
回复 使用道具 举报
现在是好多东西我自己能写出来   但是很多我搞不懂怎么出来的
回复 使用道具 举报
感觉没啥问题,估计老师那种更具普世性吧
回复 使用道具 举报
这有什么区别啊 就是多了var 弱类型没办法
回复 使用道具 举报
哇哦。。。
回复 使用道具 举报
弱类型Var也是java中的么?不是js中的么?求大神指教
回复 使用道具 举报
SwallowJin 发表于 2016-7-24 09:27
这有什么区别啊 就是多了var 弱类型没办法

不咋懂。。。。。。。。。。。。。。。。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马