排序方法有很多种:选择排序,冒泡排序,归并排序,快速排序等。 看名字都知道快速排序是目前公认的一种比较好的排序算法。因为他速度很快,所以系统也在库里实现这个算法,便于我们的使用。 这就是qsort函数(全称quicksort)。它是ANSI C标准中提供的,其声明在stdlib.h文件中,是根据二分法写的,其时间复杂度为n*log(n)

  功能: 使用快速排序例程进行排序
  头文件:stdlib.h
  用法: void qsort(void* base,size_t num,size_t width,int(__cdeclcompare)(const void,const void*));
  参数: 1 待排序数组,排序之后的结果仍放在这个数组中
      2 数组中待排序元素数量
     3 各元素的占用空间大小(单位为字节)
   4 指向函数的指针,用于确定排序的顺序(需要用户自定义一个比较函数)

  qsort要求提供一个自己定义的比较函数。比较函数使得qsort通用性更好,有了比较函数qsort可以实现对数组、字符串、结构体等结构进行升序或降序排序。

  如比较函数 int cmp(const void *a, const void *b) 中有两个元素作为参数(参数的格式不能变),返回一个int值,比较函数cmp的作用就是给qsort指明元素的大小是怎么比较的。

int num[100];
int cmp(const void* a,const void* b){
    int *ia=(int*)a;
    int *ib=(int*)b;
    return *ia-*ib; //升序
}

qsort(num,100,sizeof(num[0]),cmp); 

————————————————
版权声明:本文为CSDN博主「zhao888789」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/zhao888789/article/details/79186619

posted on 2022-06-11 23:08  volcanst  阅读(90)  评论(0编辑  收藏  举报