zoukankan      html  css  js  c++  java
  • 理解sort()函数的排序原理

    看了很多关于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;
  • 相关阅读:
    让IE6 IE7 IE8 IE9 IE10 IE11支持Bootstrap的解决方法
    检测到有潜在危险的 Request.Form 值
    jQuery校验
    C#客户端的异步操作
    泛型(一)
    c#面试题汇总
    多线程(下)
    多线程(上)
    线程篇(二)
    线程篇(一)
  • 原文地址:https://www.cnblogs.com/huoxiao/p/10239284.html
Copyright © 2011-2022 走看看