100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > C语言结构体自定义排序

C语言结构体自定义排序

时间:2022-07-05 15:09:06

相关推荐

C语言结构体自定义排序

结构体自定义排序:

在最基础的C语言中,排序较为简单的有三种:冒泡,选择,插入。其中选择最劣。复杂一点的有快速排序和归并排序,在这里后两种我就不介绍了。

在使用结构体排序的时候,里面可能有许多不同的对应值。举个例子:

struct clever{int x;int y;}a[105];

有如上结构体,而我们需要以y为比较值来对结构体数组a进行排序。怎么办?

我们定义一个结构体中间变量就可以了,在这里我以冒泡为样例:

int n;//数组大小clever temp;for (int i = 0; i < n - 1; i++){for (int j = 0; j < n - i - 1; j++){if (a[i].y < a[i + 1].y){temp = a[i];a[i] = a[i + 1];a[i + 1] = temp;}}}

有必要提一句,C语言和C++是互通的,在C++中有一个快速便捷的排序函数:sort

就算你是一个彻头彻尾的新手,学一下也能很好的使用它。我们只需要添加一点头文件即可。

#include<algorithm>using namespace std;struct clever{int x;int y;}a[105];bool cmp(clever a,clever b){return a.y < b.y;//以y为比较参数呈升序排列}int main(){int n;//数组大小sort(a,a+n,cmp);//cmp为bool类型,排序取决于函数内部设置,若无次参数,则自动以第一个系数为参数比较。}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。