qsort函数
qsort函数用法举例
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
//数字比较函数
int cmp_num(const void* a, const void* b)
{
return *(int*)a - *(int*)b;
} //字符比较函数
int cmp_char(const void* a, const void* b)
{
return *(char*)a - *(char*)b;
} //字符串比较函数
int cmp_string(const void* a, const void* b)
{
return strcmp((char*)a, (char*)b);
} //结构体某个成员比较函数
struct Node
{
double data;
int other;
};
int cmp_struct(const void* a, const void* b)
{
return (*(struct Node*)a).data > (*(struct Node*)b).data ? : -;
} int main()
{
int i;
//1.对一维数组进行排序
int n, *array;
scanf("%d", &n);
array = (int*)malloc(n*sizeof(int));
for(i = ; i < n; i++)
{
scanf("%d", (array+i));
}
qsort(array, n, sizeof(int), cmp_num);
for(i = ; i < n; i++)
{
printf("%d ", array[i]);
}
free(array);
printf("\n\n"); //2.对二维数组进行排序
int j;
int array2[][] = {{, }, {, }, {, }, {, }, {, }};
qsort(array2, , sizeof(int)*, cmp_num);
for(i = ; i < ; i++)
{
for(j = ; j < ; j++)
{
printf("%d ", array2[i][j]);
}
printf("\n\n");
} //3.对字符进行排序
char array3[] = "cdefba";
qsort(array3, strlen(array3), sizeof(char), cmp_char); //string.h
for(i = ; i < (int)strlen(array3); i++)
{
printf("%c ", array3[i]);
}
printf("\n\n"); //4.对字符串进行排序
char array4[][] = {"this", "is", "my", "computer", "."};
qsort(array4, , sizeof(array4[]), cmp_string);
for(i = ; i < ; i++)
{
printf("%s\n", array4[i]);
}
printf("\n"); //5.对结构体某个成员进行排序
struct Node array5[] = {{, }, {1.2, }, {1.1, }, {8.1, }, {5.7, }};
qsort(array5, , sizeof(array5[]), cmp_struct);
for(i = ; i < ; i++)
{
printf("%f %d\n", array5[i].data, array5[i].other);
}
return ;
}
说明:
compare比较函数原型:compare( (void *) & elem1, (void *) & elem2 );
Compare函数的返回值 |
描述
|
<0 | elem1将被排在elem2前面 |
0 | elem1 等于 elem2 |
>0 | elem1 将被排在elem2后面 |
qsort函数的更多相关文章
- qsort函数、sort函数【转】
http://blog.163.com/yuhua_kui/blog/static/9679964420142195442766/ 先说明一下:qsort和sort,只能对连续内存的数据进行排序,像链 ...
- C中的qsort函数和C++中的sort函数的理解与使用
一.qsort()函数 原型:_CRTIMP void __cdecl qsort (void*, size_t, size_t,int (*)(const void*, const void*)); ...
- C语言中qsort函数的应用
qsort函数包含在<stdlib.h>的头文件里,本文中排序都是采用的从小到大排序 一.对int类型数组排序 ]; int cmp ( const void *a , const voi ...
- C语言中qsort函数用法
C语言中qsort函数用法-示例分析 本文实例汇总介绍了C语言中qsort函数用法,包括针对各种数据类型参数的排序,非常具有实用价值非常具有实用价值. 分享给大家供大家参考.C语言中的qsort ...
- qsort函数详解
C语言标准库函数 qsort 详解 文章作者:姜南(Slyar) 文章来源:Slyar Home (www.slyar.com) 转载请注明,谢谢合作. 原文链接:http://www.slyar.c ...
- qsort函数用法【转】
qsort函数用法 qsort 功 能: 使用快速排序例程进行排序 用 法: void qsort(void *base, int nelem, int width, int (*fcmp)(con ...
- qsort函数用法
qsort函数用法 qsort 功 能: 使用快速排序例程进行排序 用 法: void qsort(void *base, int nelem, int width, int (*fcmp)(co ...
- qsort函数用法(转)
qsort函数用法 qsort 功 能: 使用快速排序例程进行排序 用 法: void qsort(void *base, int nelem, int width, int (*fcmp)(c ...
- C语言qsort函数用法
qsort函数简介 排序方法有很多种:选择排序,冒泡排序,归并排序,快速排序等. 看名字都知道快速排序是目前公认的一种比较好的排序算法.因为他速度很快,所以系统也在库里实现这个算法,便于我们的使用. ...
随机推荐
- 安装第三方库出现 Python version 2.7 required, which was not found in the registry
安装第三方库出现 Python version 2.7 required, which was not found in the registry 建立一个文件 register.py 内容如下. 然 ...
- SQL2008根据日志恢复
--创建测试数据库 CREATE DATABASE Db GO --对数据库进行备份 BACKUP DATABASE Db TO DISK='c:\db.bak' WITH FORMAT GO --创 ...
- "未能找到类型或命名空间名称",引用dll的时候出错
当前项目是.net2.0框架,引用的dll是 .net 4.5框架,引用后编译时报错“未能找到类型或命名空间名称”. 当前项目 右键-->应用程序-->目标框架 改为 .net frame ...
- Git错误non-fast-forward后的冲突解决
Git错误non-fast-forward后的冲突解决当要push代码到git时,出现提示: error:failed to push some refs to ... Dealing with “n ...
- ssh 免密码登录
1.在本机下生成公钥/私钥对. ssh-keygen -t rsa -P '' -P表示密码,-P '' 就表示空密码,也可以不用-P参数,这样就要三车回车,用-P就一次回车.它在/home/yaoy ...
- python(九)re模块
python中re模块提供了正则表达式相关操作. 1. 字符串匹配: . 匹配除换行符以外的任意字符 \w 匹配字符或数字或下划线或汉字 \s 匹配任意空白字符 \d 匹配数字 \b 匹配单词 ...
- treegrid and datagrid ctrl or shift selectRow
var tg = $('#tg');tg.treegrid({...}); // create treegridvar panel = tg.treegrid('getPanel');var body ...
- MVC中Razor的使用 及路径问题
语法: @ 可以编写一条C#语句@{} 可以编写一组C#语句@: 将文字内容直接输出到页面上去@() 在一句中将一段C#代码包括起来,证明这一句完整的C#代码 引用命名空间:@using 空间名称 H ...
- 在用busybox制作系统过程中遇到的问题
遇到的问题: 1.开机报错: 在做完整个系统之后重启出现了这个报错 VFS: Cannot open root device "sda2" or unknown-block(0,0 ...
- <转>修改TM2013聊天记录保存目录final版
一直很钟意TM的清爽,然而在升级到TM2013 preview1后,发生了一件很让人头痛的事. 那就是无法设定消息目录,TM会默认为保存在我的文档下.这让使用dropbox同步聊天记录的我感到十 ...