c语言库函数 qsort(快速排序函数)
来源:互联网 发布:淘宝网客户端官方下载 编辑:程序博客网 时间:2024/06/06 14:18
今天学习了c语言的库函数 qsort,在此记下它的用法。
相关资料:
来自百度百科:
功 能: 使用快速排序例程进行排序
头文件:stdlib.h
用 法: void qsort(void base,int nelem,int width,int (*fcmp)(const void ,const void *));
参数: 1 待排序数组首地址
2 数组中待排序元素数量
3 各元素的占用空间大小
4 指向函数的指针,用于确定排序的顺序
比较函数
以下为compare函数原型 //comp
compare( (void ) & elem1, (void ) & elem2 );
例1:对一维数组进行排序
#include <stdio.h>#include <stdlib.h>//比较函数 int comp(const void *a,const void *b){ return *((int *)a)-*((int *)b);}int main(){ int arr[10]={44,3,23,1,76,8,3,2,88,4}; int i=0; //调用qsort qsort(arr,10,sizeof(int),comp); printf("\n打印数组:\n"); for(i=0;i<10;i++) { printf("%2d\n",arr[i]); } return 0;}
运行结果:
例2:对二维数组进行排序
#include <stdio.h>#include <stdlib.h>//比较函数 int comp(const void *a,const void *b){ return ((int *)a)[0]-((int *)b)[0];//对二维数组排序的比较函数 }int main(){ //对二维数组进行排序 int arr[5][3]={{4,2,6},{44,3,2},{4,2,2},{2,11,3},{2,4,3}}; int i,j; printf("排序前:\n\n"); for(i=0;i<5;i++) { printf("%2d %2d %2d\n",arr[i][0],arr[i][1],arr[i][2]); } printf("排序后:\n\n"); qsort(arr,5,sizeof(int)*3,comp); for(i=0;i<5;i++) { printf("%2d %2d %2d\n",arr[i][0],arr[i][1],arr[i][2]); } return 0;}
运行结果:
例3:对结构体进行排序
#include <stdio.h>#include <stdlib.h>//结构体 struct rect{ int l; int w; int h;}R[4];//比较函数 (比较矩形从小到大,比较顺序为长-宽-高)int comp(const void *a,const void *b){ struct rect *c=(struct rect *)a; struct rect *d=(struct rect *)b; if(c->l!=d->l) { return c->l<d->l?-1:1; } else { if(c->w!=d->w) { return c->w<d->w?-1:1; } else { return c->h<d->h?-1:1; } }}void initRect(){ R[0].l=34; R[0].w=3; R[0].h=12; R[1].l=4; R[1].w=30; R[1].h=55; R[2].l=34; R[2].w=33; R[2].h=12; R[3].l=34; R[3].w=33; R[3].h=1;}int main(){ int i,j; initRect(); printf("排序前:\n\n"); for(i=0;i<4;i++) { printf("%2d %2d %2d\n",R[i].l,R[i].w,R[i].h); } printf("排序后:\n\n"); qsort(R,4,sizeof(int)*3,comp); for(i=0;i<4;i++) { printf("%2d %2d %2d\n",R[i].l,R[i].w,R[i].h); } return 0;}
运行结果:
1 0
- c语言库函数 qsort(快速排序函数)
- qsort函数 C语言快速排序函数
- c语言调用库函数qsort()进行快速排序
- 如何利用C语言中的qsort库函数实现快速排序?
- c语言调用库函数qsort()进行快速排序
- 如何利用C语言中的qsort库函数实现快速排序
- C语言快速排序函数qsort
- C语言标准库函数之qsort排序函数
- C语言中库函数自带的排序函数qsort
- C语言快速排序模板大全(qsort函数)
- C/C++ 库函数快速排序 qsort
- 在C语言的库函数中就有快速排序的库函数,即为qsort
- 菜鸟学C语言三:快速排序与调用C语言库函数qsort()
- C语言qsort快速排序
- C语言标准库函数 qsort函数详解
- c语言快排序函数 qsort()
- C语言库函数qsort
- C语言中的快速排序 qsort函数详解
- The parent project must have a packaging type of POM
- 数据结构算法之排序系列Java、C源码实现(4)--堆排序
- UVA 12169(p316)----Disgruntled Judge
- 嵌套删除SQL引起的死锁问题分析
- 2015年年终总结学习篇:为了梦想不服输,再苦也不能停止脚步
- c语言库函数 qsort(快速排序函数)
- 文件上传和下载(三)--【SmartUpload】
- C语言九阳神功
- c++(重载、覆盖、隐藏)
- 初识html5 File API实现带有进度提示的文件上传
- 常见浏览器兼容性问题与解决方案
- UVA 12186(p282)----Another Crisis
- 文章标题
- 使用PowerDesigner创建mysql数据库表图文并茂版