下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

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

作者: 橱窗外的小孩     来源: https://www.cnblogs.com/showcase/p/11397311.html点击数:1271发布时间: 2020-03-02 11:46:24

标签: C语言web函数

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<b<c<d

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

  if(a>b){

  return1;

  }

  简化后:

  //升序

  returna-b;

  //倒序

  returnb-a;

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

赞(10)
踩(0)
分享到:
华为认证网络工程师 HCIE直播课视频教程