黑马程序员技术交流社区
标题:
冒泡排序的区别
[打印本页]
作者:
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