qsort简单解析
来源:互联网 发布:淘宝企业店铺怎么发货 编辑:程序博客网 时间:2024/06/07 08:41
编译器函数库自带的快速排序函数。
使用qsort()排序并用 bsearch()搜索是一个比较常用的组合,使用方便快捷。
qsort 的函数原型是
void qsort(void*base,size_t num,size_t width,int(__cdecl*compare)(const void*,const void*));
各参数:1 待排序数组首地址 2 数组中待排序元素数量 3 各元素的占用空间大小 4 指向函数的指针
其中base是排序的一个集合数组,num是这个数组元素的个数,width是一个元素的大小,comp是一个比较函数。(不同类型的参数要用不同的函数进行比较)
根据返回值的不同,可以改变qsort是从小到大排列还是从大到小排列。返回值小于零从小到大排列,返回值大于零从大到小排列。
一 整形比较
int
comp(
const
void
*a,
const
void
*b)
{
return
*(
int
*)a-*(
int
*)b;
}
int
Comp(
const
void
*p1,
const
void
*p2)
{
return
strcmp
((
char
*)p2,(
char
*)p1);
}
structNode
{
double
data;
int
other;
}s[100];
int
Comp(constvoid*p1,constvoid*p2)
{
return
(*(Node*)p2).data>(*(Node*)p1).data?1:-1;
}
#define _CRT_SECURE_NO_DEPRECATE 1#include <stdio.h> #include <stdlib.h> #include <string.h>#include <stdarg.h>int Comp(const void*p1,const void*p2){ return *(int*)p1-*(int*)p2;}int main(){int arr[]={1,5,2,3,4,6,8,7,9};int sz =sizeof(arr)/sizeof(arr[0]);int i = 0;qsort(arr,sz,sizeof(arr[0]),Comp); for(i=0; i<sz; i++){printf("%d",arr[i]);}system("pause"); return 0;}
0 0
- qsort简单解析
- sort qsort 简明解析
- 简单排序:qsort
- qsort bseach 简单使用
- sort与qsort对比解析
- 快排qsort简单小结
- qsort的简单实现源码
- 简单的快速排序 qsort
- qsort的用法解析(转)
- QSORT
- qsort
- QSort
- qsort
- qsort
- qsort
- qsort
- qsort
- qsort
- 漫谈JSTL
- hdu6025-构造or线段树
- java.util.Objects 源码学习
- 安装xampp后apache不能启动解决方法
- Hive的三种Join方式
- qsort简单解析
- QT之鼠标滑过按钮,按钮改变颜色,离开之后,按钮恢复原先颜色
- Android Studio真机测试中遇到的问题:Session 'app': Error Installing APKs
- AH00072: make_sock: could not bind to address [::]:443 Aphache启动报443端口占用
- 排序算法--选择排序算法
- matlab2010b支持svmlib
- UGank项目的理解分析
- StackOverflowError异常处理
- iOS实现RTMP视频直播 IJKMediaFramework框架编译