首页 > 编程知识 正文

c中sort函数的使用,js中sort方法使用

时间:2023-05-03 17:04:03 阅读:114338 作者:4266

sort ) )函数1 :前言

sort函数用于c,对特定区间的所有元素进行排序。 默认值为升序,但也可以按降序排序。 sort函数的排序时间复杂度为n*log2n,比冒泡等排序算法更高效。 sort函数包含在头文件#include“algorithm”的c标准库中。

sort (开始、结束、cmp ) )。

)1) start表示排序数组的起始地址;

)2) end表示数组结束地址的下一位;

)3) cmp用于规定排序方法,可以默认为升序,无需填写。

二.实例

1 .使用以int为例的基本数据类型的sort

# include iostream # include algorithm # includecstringusingnamespacestd; int main () ) inta [5]={ 1,3,4,2,5 }; sort(a,a 5); for(intI=0; i5; I ) couta[i] '; 返回0; 由于没有cmp参数,默认情况下排序为非降序,结果如下:

1 2 3 4 5

如果设计为不按升序排序,请创建cmp函数:

BOOLCMP(inta,int b ) {return ab; }标准库中有现成的东西。 在functional中,直接使用就可以了。 functional提供了许多基于模板的比较函数对象。 它们是(看名字就知道它的意思) equal_to、not_equal_to、greater、greater_equal、less、less_equal。 对于这个问题,greater和less就足够了。 请就这样拿来使用:

升序: sort(Begin,end,lessdata-type ); 降序: sort(begin,end,greaterdata-type ().int main ) ) inta [ 20 ]={ 2,4,1,23,5,76,0,43,24,65 } for i20; I ) couta[i]endl; sort(a,a 20,greaterint ) ); for(I=0; i20; I ) couta[i]endl; 返回0; (二)参考数据类型string的使用

字符串之间的字符排序:

迭代器允许您完成顺序排序

# include iostream # include algorithm # includecstringusingnamespacestd; intmain((stringstr ) ' Helloworld ); sort(str.Begin )、str.end ); 出局; 返回0; 结果:空格dehllloorw

使用反向运动学可以完成逆序排序

# include iostream # include algorithm # includecstringusingnamespacestd; intmain((stringstr ) ' Helloworld ); sort(str.Rbegin )、str.rend ); 出局; 返回0; 结果: wroolllhde空间

字符串之间的比较排序

# include iostream # include cstring # includealgorithmusingnamespacestd; int main () ({字符串a [4]; for(intI=0; i4; I ) Getline(CIN,a[i]; sort(a,a 4); for(intI=0; i4; I ) couta[i]endl; 返回0; (三)以结构体为例的两级排序

# include iostream # include algorithm # includecstringusingnamespacestd; 结构链接{ int a,b; (; OOLCMP(linkx,link y ) if ) x.a==y.a ) return x.by.b; 返回x.ay.a; (}int main ) ) { link x[4]; for(intI=0; i4; I ) cinx[i].ax[i].b; sort(x,x 4,cmp ); for(intI=0; i4; I ) coutx[i].a' 'x[i].bendl; 返回0; }想排序:首先按a的值升序排列,如果a的值相同,则按b的值降序排列

排序结构体中的一个要素时遇到,必须用cmp函数判断。

示例:

结构节点{ int a; int b; int c; (; 向量节点; 针对c排序,针对整体排序时:

BOL CMP (节点开始,节点结束) {return start.c end.c; //按成本顺序(sort(p.begin )、p.end )、cmp );

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。