web前端:理解sort()函数的排序原理
宣传部部长
2024-04-23 22:47
一个较大的程序一般应分为若干个程序块,每一个模块用来实现一个特定的功能。所有的高级语言中都有子程序这个概念,用子程序实现模块的功能。在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;
函数分为全局函数、全局静态函数;在类中还可以定义构造函数、析构函数、拷贝构造函数、成员函数、友元函数、运算符重载函数、内联函数等。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341