为了账号安全,请及时绑定邮箱和手机立即绑定

sortNum是方法吗?

根据之前所学,我们在这段代码中定义了sortNum()这个方法,这个方法需要输入a,b两个值,为什么在排序中没有输入这两个值。 有人说这是排序法则,不需要输入,那么原理是什么,是第一个元素分别与后面的元素对比,进行排序,还是元素直接两两对比。 请问有大神可以解释一下吗?

正在回答

4 回答

在函数里面加了一段   document.write("(a-b)="+(a-b)+"</br>");终于看明白了
(a-b)=64----第一次调用函数:a是80,b是16,结果为64>0,因此交换位置:16,80,50,6,100,1
(a-b)=30----第二次调用函数:a是80,b是50,结果为30>0,因此交换位置:16,50,80,6,100,1
(a-b)=-34----第三次调用函数:a是16,b是50,结果为-34<0,因此不交换位置:16,50,80,6,100,1
(a-b)=74----第四次调用函数:a是80,b是6,结果为74>0,因此交换位置:16,50,6,80,100,1
(a-b)=44----第五次调用函数:a是50,b是6,结果为44>0,因此交换位置:16,6,50,80,100,1
(a-b)=10----第六次调用函数:a是16,b是6,结果为10>0,因此交换位置:6,16,50,80,100,1
(a-b)=-20----第七次调用函数:a是80,b是100,结果为-20<0,因此不交换位置:6,16,50,80,100,1
(a-b)=99----第八次调用函数:a是100,b是1,结果为99>0,因此交换位置:6,16,50,80,1,100
(a-b)=79----第九次调用函数:a是80,b是1,结果为79>0,因此交换位置:6,16,50,1,80,100
(a-b)=49----第十次调用函数:a是50,b是1,结果为49>0,因此交换位置:6,16,1,50,80,100
(a-b)=15----第十一次调用函数:a是16,b是1,结果为15>0,因此交换位置:6,1,16,50,80,100
(a-b)=5----第十二次调用函数:a是6,b是1,结果为5>0,因此交换位置:1,6,16,50,80,100
1,6,16,50,80,100
应该是一种优化版的冒泡排序法

5 回复 有任何疑惑可以回复我~
#1

张珂 提问者

非常感谢!
2017-07-24 回复 有任何疑惑可以回复我~
#2

imooc翎灵霸

大神,这个排序比较有顺序吗,谁和谁相减
2017-08-08 回复 有任何疑惑可以回复我~

   每一次a和b比较时a b的位置     有规律又没有具体的顺序     看看吧       
1 2  第一个和第二个数比
2 3  第二个和第三个数比

1 2  
3 4
2 3
1 2
4 5  
5 6
4 5
3 4
2 3
1 2

a b

0 回复 有任何疑惑可以回复我~

大神,这个排序比较有顺序吗,谁和谁相减

0 回复 有任何疑惑可以回复我~

应该是这样的,你在sortNum中有两个参数a和b,但你return a - b的时候就是从小到大,return b - a的时候就是从大到小

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

sortNum是方法吗?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信