标签:
各种排序算法的比较
排序方法 | 平均时间 | 最坏情况 | 辅助存储 |
简单排序 | O(n2) | O(n2) | O(1) |
快速排序 | O(nlogn) | O(n2) | O(logn) |
堆排序 | O(nlogn) | O(nlogn) | O(1) |
归并排序 | O(nlogn) | O(nlogn) | O(n) |
基数排序 | O(d(n+rd)) | O(d(n+rd)) | O(rd) |
快速排序
排序方法有很多种,但是最常用的是快速排序。知道快速排序的实现思路是必要的,至于源码级实现那是高手闲下来时所做的事。我们这里着重讨论库函数快速排序的使用方法。
所在位置 stdlib.h
函数原型 void qsort(void*base,size_t num,size_t width,int(__cdecl*compare)(const void*,const void*))
参数意义
base 待排序数组首地址
num 数组中待排序元素数量
width 各元素的占用空间大小
compare 指向函数的指针
compare函数举例
从小到大排序
int compare(const void*a,const void*b) { return *(int*)a - *(int*)b; }
从大到小排序
int compare(const void*a,const void*b) { return *(int*)b - *(int*)a; }
参考资料:
标签:
原文地址:http://www.cnblogs.com/amanlikethis/p/4829291.html