qsort(利用快速排序法排列数组)
来源:互联网 发布:好吃小零食知乎 编辑:程序博客网 时间:2024/06/05 10:47
qsort(利用快速排序法排列数组)
#include <stdlib.h>
int compar (const void *a ,const void *b)
{
int *aa=(int * ) a,*bb = (int * )b;
if( * aa >* bb)return 1;
if( * aa == * bb) return 0;
if( * aa < *bb) return -1;
}
main( )
{
int base[nmemb]={ 3,102,5,-2,98,52,18};
int i;
for ( i=0; i<nmemb;i++)
printf(“%d “,base[i]);
printf(“\n”);
qsort(base,nmemb,sizeof(int),compar);
for(i=0;i<nmemb;i++)
printf(“%d”base[i]);
printf(“\n”);
}
-2 3 5 18 52 98 102
相关函数
bsearch表头文件
#include<stdlib.h>定义函数
void qsort(void * base,size_t nmemb,size_t size,int ( * compar)(const void *, const void *));函数说明
参数base指向欲排序的数组开头地址,参数nmemb代表数组中的元素数量,每一元素的大小则由参数size决定,最后一项参数compar为一函数指针,这个函数用来判断两个元素间的大小关系,若传给compar的第一个参数所指的元素数据大于第二个参数所指的元素数据则必须回传大于零的值,两个元素数据相等则回传0。返回值
附加说明
范例
#define nmemb 7#include <stdlib.h>
int compar (const void *a ,const void *b)
{
int *aa=(int * ) a,*bb = (int * )b;
if( * aa >* bb)return 1;
if( * aa == * bb) return 0;
if( * aa < *bb) return -1;
}
main( )
{
int base[nmemb]={ 3,102,5,-2,98,52,18};
int i;
for ( i=0; i<nmemb;i++)
printf(“%d “,base[i]);
printf(“\n”);
qsort(base,nmemb,sizeof(int),compar);
for(i=0;i<nmemb;i++)
printf(“%d”base[i]);
printf(“\n”);
}
执行
3 102 5 -2 98 52 18-2 3 5 18 52 98 102
- qsort(利用快速排序法排列数组)
- 快速排序法qsort
- qsort 快速排序法
- 快速排序法qsort
- 快速排序(qsort)
- 利用qsort库函数实现快速排序
- 快速排序算法(qsort)
- qsort(快速排序)用法
- 快速排序算法(Qsort)
- 快速排序 qsort()函数
- 重温排序之快速排序(qsort)
- 利用qsort() 对字符串的内容快速排序
- 如何利用C语言中的qsort库函数实现快速排序?
- 如何利用C语言中的qsort库函数实现快速排序
- 二分法快速排序法 qsort C源码
- 《C primer plus》qsort(...)-快速排序法
- qsort函数(快速排序用法举例)
- 快速排序(qsort and sort)
- 计较,是贫穷的开始
- 10245 - The Closest Pair ----------水题--二分
- 详解关于Lua栈介绍以及实例
- 创业:造就不平凡的人生
- 经典二十个CSS技巧
- qsort(利用快速排序法排列数组)
- Oracle数据库用户、表、表空间之间关系详解
- thTree:jquery树 图形显示实现
- Linux那些事儿之我是Hub(25)不说代码说理论 .
- 详解Lua环境搭建之利用EditPlus搭建Lua开发环境
- h.323协议分析
- 敏捷开发一千零一问系列之十四:敏捷开发加班吗?
- VC调试程序启动时挂掉,可能是工作目录没有设置对
- hdu 1166 敌兵布阵(水...线段树&&树状数组)