web前端:理解sort()函数的排序原理

    作者: 橱窗外的小孩 更新于: 2020-03-02 11:46:19

    Web开发

      一个较大的程序一般应分为若干个程序块,每一个模块用来实现一个特定的功能。所有的高级语言中都有子程序这个概念,用子程序实现模块的功能。在C语言中,子程序的作用是由一个主函数和若干个函数构成。

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

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

      例如:

      vararr=[1,5,4,2];

      sort()方法的比较逻辑为:

      第一轮:1和5比,1和4比,1和2比

      第二轮:5和4比,5和2比

      第三轮:4和2比

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

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

      例如:

      vararr=[1,5,4,2];

      现在要进行升序排列,从左到右的数组项关系最终应该为:a

      所以只要在当a大于b的时候去交换它们的位置就好了:

      if(a>b){

      return1;

      }

      简化后:

      //升序

      returna-b;

      //倒序

      returnb-a;

      函数分为全局函数、全局静态函数;在类中还可以定义构造函数、析构函数、拷贝构造函数、成员函数、友元函数、运算符重载函数、内联函数等。

课课家教育

未登录

1