码迷,mamicode.com
首页 > 编程语言 > 详细

理解sort()函数的排序原理

时间:2019-08-23 00:15:50      阅读:145      评论:0      收藏:0      [点我收藏+]

标签:return   pos   uri   递归   冒泡   https   href   www   冒泡排序   

看了很多关于sort()函数的定义和解释还是不太清楚,尤其是初学者很容易看懵,这里讲讲自己是如何理解的。 

首先,要理解sort()内部是利用递归进行冒泡排序的;

例如:

var arr = [1, 5, 4, 2];

sort()方法的比较逻辑为:
第一轮:1和5比,1和4比,1和2比
第二轮:5和4比,5和2比
第三轮:4和2比

其次,sort()方法会接受一个比较函数compare(a, b),该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。

最后,永远要记住一句话,凡是返回1或者大于0的正数的时候就要交换位置。(内部实现)

例如:

var arr = [1, 5, 4, 2];

现在要进行升序排列,从左到右的数组项关系最终应该为: a < b < c < d
所以只要在当a大于b的时候去交换它们的位置就好了:

if(a > b ) {
    return 1;
}

简化后:

// 升序
return a - b;
// 倒序
return b - a;

 

原文:https://www.cnblogs.com/huoxiao/p/10239284.html

理解sort()函数的排序原理

标签:return   pos   uri   递归   冒泡   https   href   www   冒泡排序   

原文地址:https://www.cnblogs.com/showcase/p/11397311.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!