当前位置:首页 >> 学科竞赛 >> 七种qsort排序方法

七种qsort排序方法


七种 qsort 排序方法<本文中排序都是采用的从小到大排序>一、 对 int 类型数组 排序 C++代码 1. int num[100]; Sample: 1. 2. 3. 4. 5. int cmp ( const void *a , const void *b ) { return *(int *)a – *(int *)b; } qsort(num,100,s

izeof(num[0]),cmp);

二、对 char 类型数组排序(同 int 类型) C++代码 1. char word[100]; Sample: 1. 2. 3. 4. 5. int cmp( const void *a , const void *b ) { return *(char *)a – *(char*)b; } qsort(word,100,sizeof(word[0]),cmp)

三、对 double 类型数组排序(特别要注意) C++代码 1. double in[100]; 2. int cmp( const void *a , const void *b ) 3. { 4. return *(double *)a > *(double *)b ? 1 : -1; 5. } qsort(in,100,sizeof(in[0]),cmp); 四、对结构体一级排序 C++代码 1. 2. 3. 4. struct In { double data; int other; }s[100]

5. //按照 data 的值从小到大将结构体排序,关于结构体内的排序关键数据 data 的类型可以很多种,参考上面的例子写 6. int cmp( const void *a ,const void *b) 7. { 8. return (*(In *)a).data > (*(In *)b).data ? 1 : -1; 9. } 10. qsort(s,100,sizeof(s[0]),cmp); 五、对结构体二级排序 C++代码 1. struct In { 2. int x; int y; 3. }s[100]; 4. //按照 x 从小到大排序,当 x 相等时按照 y 从大到小排序 5. int cmp( const void *a , const void *b ) 6. { 7. struct In *c = (In *)a; 8. struct In *d = (In *)b; 9. if(c->x != d->x) return c->x – d->x; 10. else return d->y – c->y; 11. } 12. qsort(s,100,sizeof(s[0]),cmp); 六、对字符串进行排序 C++代码 1. struct In { 2. int data; char str[100]; 3. }s[100]; 4. //按照结构体中字符串 str 的字典顺序排序 5. int cmp ( const void *a , const void *b ) 6. { 7. return strcmp( (*(In *)a)->str , (*(In *)b)->str ); 8. } 9. qsort(s,100,sizeof(s[0]),cmp); 七、计算几何中求凸包的 cmp C++代码

1. int cmp(const void *a,const void *b) 2. //重点 cmp 函数,把除了 1 点外的所有点,旋转角度排序 3. { 4. struct point *c=(point *)a; 5. struct point *d=(point *)b; 6. if( calc(*c,*d,p[1]) < 0) return 1; 7. else if( !calc(*c,*d,p[1]) 8. && dis(c->x,c->y,p[1].x,p[1].y) < dis(d->x,d->y,p[1].x,p[1].y)) 9. 10. 11. } //如果在一条直线上,则把远的放在前面 return 1; else return -1;

PS: 其中的 qsort 函数包含在的头文件里,strcmp 包含在的头文件里


更多相关文档:

C库函数qsort七种使用方法示例

C 库函数 qsort 七种使用方法示例七种 qsort 排序方法<本文中排序都是采用的从小到大排序> 一、对 int 类型数组排序 C++代码 1. int num[100]; Sample: 1....

qsort()函数与sort()函数排序及区别_汇总

排序的目标数组开始地址 num:目标数组元素个数 width:目标数组中每一个元素长度 cmp:函数指针,指向比较函数 1、qsort 七种排序方法七种排序方法 <本文中排序...

c语言排序qsort

七种qsort排序 3页 1下载券 qsort排序方法 3页 2下载券喜欢此文档的还喜欢 ...假设是对 int 排序的话,如果是升序,那么就是如果 a 比 b 大返回一个正值,...

ACM qsort排序方法

ACM qsort排序方法ACM qsort排序方法隐藏>> 七种qsort 排序方法 <本文中排序都是采用的从小到大排序> 一、对 int 类型数组排序 int num[100]; Sample: int cmp...

快速排序算法的qsort函数的程序理解

快速排序算法的qsort函数的程序理解_计算机软件及应用_IT/计算机_专业资料。快速...qsort的七种排序方法 3页 免费 七种qsort排序方法 1页 免费 [极力推荐]七种...

sort和qsort

[i].b<<endl; return 0; } 七种 qsort 排序方法 < 本文中排序都是采用的从小到大排序 > 一、对 int 类型数组排序 int num[100]; Sample: int cmp ( ...

C语言标准库函数qsort排序的介绍与使用

先来看看一个例子程序,它以升序的方式对整型数组进行排序的。 #i nclude <...C库函数qsort七种使用方... 3页 免费 c语言排序qsort 4页 1下载券 C语言qsort...

十六种经典排序算法

//改进快速排序--先使>8 的块基本有序--实测比一般快速排序节 约 28%时间(59 秒,1 亿条随机数据,逆序数时间较长) void qsort_improve(int *a,int ...

sort和qsort函数对结构体的二级排序

sort和qsort函数对结构体的二级排序_计算机软件及应用_IT/计算机_专业资料。qsort(基本快速排序方法,每次把数组分成两部分和中间的一个划分值,而对于有多个重复值...

qsort函数详解

那么 qsort 认为 a<b 的,就把 b 放到前面去,但实际上是 a 大于 b 的, 所以就造成升降序的差别了。 所以就造成升降序的差别了。 七种 qsort 排序方法 <...
更多相关标签:
qsort结构体排序 | qsort对结构体排序 | qsort排序 | qsort字符串排序 | qsort对二维数组排序 | qsort指针数组排序 | qsort从大到小排序 | qsort对字符串排序 |
网站地图

文档资料共享网 nexoncn.com copyright ©right 2010-2020。
文档资料共享网内容来自网络,如有侵犯请联系客服。email:zhit325@126.com