qsort函数学习总结
来源:互联网 发布:软件开发专业就业方向 编辑:程序博客网 时间:2024/06/05 18:58
qsort包含在<stdlib.h>头文件中,此函数根据你给的比较条件进行快速排序,通过指针移动实现排序。排序之后的结果仍然放在原数组中。使用qsort函数必须自己写一个比较函数,这一点是很重要的一步,也比较简单。
函数原型:
void qsort ( void * base, size_t num, size_t size, int ( * comparator ) ( const void *, const void * ) );
各参数说明:1 待排序数组首地址 2 数组中待排序元素数量 3 各元素的占用空间大小 4 指向函数的指针
举例:
一、对int类型数组排序
int num[100];
int cmp ( const void *a , const void *b )
{
return *(int *)a - *(int *)b;
}
qsort(num,100,sizeof(num[0]),cmp);
二、对char类型数组排序(同int类型)
char word[100];
int cmp( const void *a , const void *b )
{
return *(char *)a - *(int *)b;
}
qsort(word,100,sizeof(word[0]),cmp);
三、对double类型数组排序
double in[100];
int cmp( const void *a , const void *b )
{
return *(double *)a > *(double *)b ? 1 : -1;
}
qsort(in,100,sizeof(in[0]),cmp);
四、对结构体一级排序
struct Sample
{
double data;
int other;
}s[100]
//按照data的值从小到大将结构体排序
int cmp( const void *a ,const void *b)
{
return (*(Sample *)a).data > (*(Sample *)b).data ? 1 : -1;
}
qsort(s,100,sizeof(s[0]),cmp);
五、对结构体二级排序
struct Sample
{
int x;
int y;
}s[100];
//按照x从小到大排序,当x相等时按照y从大到小排序
int cmp( const void *a , const void *b )
{
struct Sample *c = (Sample *)a;
struct Sample *d = (Sample *)b;
if(c->x != d->x) return c->x - d->x;
else return d->y - c->y;
}
qsort(s,100,sizeof(s[0]),cmp);
六、对字符串进行排序
struct Sample
{
int data;
char str[100];
}s[100];
//按照结构体中字符串str的字典顺序排序
int cmp ( const void *a , const void *b )
{
return strcmp( (*(Sample *)a).str , (*(Sample *)b).str );
}
qsort(s,100,sizeof(s[0]),cmp);
总的看来形式是一样的。
qsort是c中的,c++中的sort函数更好用
- qsort函数学习总结
- 【C语言学习笔记】qsort函数总结
- c语言函数qsort()总结
- qsort 总结。qsort大法
- C Primer Plus学习 五十六 qsort ()函数
- c++学习笔记-----qsort通用排序函数
- qsort 总结
- qsort ()函数
- qsort函数
- qsort函数
- qsort函数
- qsort()函数
- qsort函数
- qsort函数
- qsort函数
- qsort函数
- qsort函数
- Qsort()函数
- do not back up IOS被拘处理
- 2014 Multi-University Training Contest 7 题解
- 黑马程序员——集合框架类学习
- STRONGSWAN源代码学习2_LIBGCRYPT
- 遍历删除.svn .git .repo目录
- qsort函数学习总结
- HDU 4771
- 算法的特征及设计要求
- MySQL常用命令(持续总结中)
- sum 3- 4
- 算法基础-动态规划 (1) 01背包问题
- linux系统下安装jdk
- 编码实现修改应用程序标题
- UVA - 110 Meta-Loopless Sorts(元排序 回溯)