永发信息网

请问js的sort排序方法是怎么样的?比较次数是多少?

答案:2  悬赏:0  手机版
解决时间 2021-04-08 08:18
var arrA = [6,2,4,3,5,1];
arrA.sort();
document.writeln(arrA);
//结果是:1,2,3,4,5,6

比如上例6个数,第一个和第二个比较后交换顺序,然后呢?一共需要比较多少次呢?
最佳答案
这个排序这进行两两比较.
比如你这个数组按升序排列var arrA = [6,2,4,3,5,1];
第一次比较6,2
6比2大得到2,6
原数组变成[2,6,4,3,5,1]

第2次比较第2个和第3个数,6和4.
6比4大,得到4,6
结果[2,4,6,3,5,1]

第3次比较第3个和第4个数6和3.
得到[2,4,3,6,5,1]

第4次[2,4,3,5,6,1]
第5次[2,4,3,5,1,6]
第一轮完毕

第二轮
第6次,2比4小,不变[2,4,3,5,1,6]
第7次[2,3,4,5,1,6]
第8次4比5小,不变[2,3,4,5,1,6]
第9次[2,3,4,1,5,6]
第三轮
第10次 2比3小,不变[2,3,4,1,5,6]
第11次 3比4小,不变[2,3,4,1,5,6]
第12次 [2,3,1,4,5,6]

第4轮
第13次 2比3小,不变[2,3,1,4,5,6]
第14次 [2,1,3,4,5,6]

第5轮
第15次[1,2,3,4,5,5]

看出规律了么.第一轮比较数组总数-1次.以后每轮比较次数再-1
(6-1)+(6-1-1)+(6-1-1)+(6-1-1-1)+(6-1-1-1-1)+(6-1-1-1-1-1)=5+4+3+2+1
全部回答
第一种方法写成匿名函数 console.log(a.sort(function (a,b){return b-a})); console.log(a.sort(function (a,b){return a-b}));
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
自清华茶地址有知道的么?有点事想过去
Do you play with you friends every day
蓝的造句怎么写,战斗 如何造句
汽油机一个工作循环由吸气、压缩、做功、排气
在饭店吃饭,出门时用脚一推门玻璃门就碎了腿
经典韩文台词对话,短小精悍的韩剧经典台词,加
20年前,东欧发生了一场“政治地震”,这场“
下落不明的落的意思,下落不明是什么意思
引领潮流专业美发设计地址在哪,我要去那里办
单选题下列实验操作中正确的是A.用托盘天平称
怎样租到嘉兴徐王公寓房子!
战国之王空白名字怎么打
方程x2=1的解为x=________.
金晟展示架地址在哪,我要去那里办事
单选题英国善于吸收别国的先进技术。理解:英
推荐资讯
VBA中UserForm_Mouseup函数,这几句什么意思
匆匆那年经典台词陈寻,电视剧《匆匆那年》乔
前移式叉车电瓶组怎么拆
灵魂摆渡的诗句,灵魂摆渡第二季画眉那一集关
被素质低的人说自己素质不高怎么办?
Every pupil is to be in the classroom at 7
单选题据史料记载:拓跋贵族“每有骑战,驱夏
俄语陪同翻译一天多少钱
单选题Ofallthestudentsinourclass,sh
歌颂男人的古诗词,古诗词 歌颂男人
根据下列要求填空:(1)2个氮原子______????
含有禅意的诗歌,帮我找一首现代诗 含有 百万
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?