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函数简介 排序方法有很多种:选择排序,冒泡排序,归并排序,快速排序等. 看名字都知道快速排序是目前公认的一种比较好的排序算法.因为他速度很快,所以系统也在库里实现这个算法,便于我们的使用. ...
随机推荐
- 转:客制FORM调用会计科目弹性域/根据科目取得CODE_COMBINATION_ID
1.首先在创建数据表时,添一个字段用来保存会计科目的ID.如:CODE_COMBINATION_ID 2.在FORM相应的数据块增加两个ITEM,用来显示科目NUMBER与DESCRITION. 例: ...
- 20. 星际争霸之php设计模式--适配器模式
题记==============================================================================本php设计模式专辑来源于博客(jymo ...
- 开源.net 混淆器ConfuserEx介绍
今天给大家介绍一个开源.net混淆器——ConfuserEx http://yck1509.github.io/ConfuserEx/ 由于项目中要用到.net 混淆器,网上搜寻了很多款,比如Dotf ...
- Android 程序崩溃后的处理
在应用发布以后,由于安卓机型的千差万别 ,可能会出现各种各样的问题,这时候如果我们可以将这些信息收集起来,并进行修改就很不错了.下面就来讨论一下怎么处理程序崩溃以后,错误信息的手机. Java中已经提 ...
- Android网络框架源码分析一---Volley
转载自 http://www.jianshu.com/p/9e17727f31a1?utm_campaign=maleskine&utm_content=note&utm_medium ...
- noi 8787 数的划分
题目链接:http://noi.openjudge.cn/ch0206/8787/ 将整数n分成k份,且每份不能为空,任意两份不能相同(不考虑顺序). 简直跟分苹果一模一样. #include < ...
- 。【自学总结 3】------3ds Max 主工具栏
1.选择并链接:选择对象,使其和其他对象建立父子关系. 2.断开选择链接:撤销链接关系. 3.选择过滤器列表:可以限制要选择的对象的特定类型和组合.例如,我们选择几何体后,其他对象就无法被选择. 4. ...
- Cheatsheet: 2015 11.01 ~ 11.30
Golang Roadomatic: Node vs. Go Quick Guide to Golang for Java Developers 3 Go Gotchas Web Choosing a ...
- ASP.Net系列教程
Getting Started with ASP.NET MVC This is a beginner tutorial that introduces the basics of ASP.NET M ...
- iscroll 使用及遇到的问题
介绍: iscroll.js 是滑动事件.在手机上可以快速的滑动,用户体验很好.在线例子: 选择套餐 iScroll必须在调用之前实例化---用法 <script src="iscro ...