码迷,mamicode.com
首页 > 编程语言 > 详细

排序算法

时间:2015-09-22 18:37:15      阅读:286      评论:0      收藏:0      [点我收藏+]

标签:

各种排序算法的比较

排序方法 平均时间 最坏情况 辅助存储
简单排序 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;
}

 

 参考资料:

   qsort百度百科

      qsort函数用法

      排序算法——快速排序

 

排序算法

标签:

原文地址:http://www.cnblogs.com/amanlikethis/p/4829291.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!