sortNum是方法吗?

来源:7-22 数组排序sort()

张珂

2017-07-14 11:03

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

写回答 关注

4回答

  • ESKY3687376
    2017-07-21 16:04:03
    已采纳

    在函数里面加了一段   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
    应该是一种优化版的冒泡排序法

    imooc翎...

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

    2017-08-08 09:09:57

    共 2 条回复 >

  • 慕用8963327
    2017-08-14 20:03:22

       每一次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

  • imooc翎灵霸
    2017-08-08 09:09:16

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

  • 大耳朵图图_3
    2017-07-14 15:33:15

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

JavaScript进阶篇

本课程从如何插入JS代码开始,带您进入网页动态交互世界

468193 学习 · 21891 问题

查看课程

相似问题