用qsort()进行排序

2025-10-27 09:03:14

 qsort()函数是非常有用,因为它的速度远远快于冒泡或简单的交换排序。并且非常容易使用。

方法/步骤

 qsort()的函数原型在stdlib.h中,它相当于:

void qsort(void *arry,size_t n_els, size_t el_size,

                  int compare(const void *,const void *));

   注意,这里使用了size_t类型。标准函数库中的许多其他函数也使用了这种类型。当qsort()被调用时,它的第一个参数就是需要排序的数组,它的第二个参数就是这个数组的元素数量,它的第三个参数是每个元素的字节数,它的第四个参数是个函数,称作“比较函数”,用于对数组中的元素进行比较。在qsort()的这个函数原型中,第四个参数的声明如下:

int compare(const void *, const void *)

  它本身是函数原型,就是比较函数的函数原型。比较函数接受两个void类型的指针为参数。当compare()被调用时,这两个参数将指向数组的元素。比较函数根据第一参数是小于、等于或者大于第二个参数,返回一个小于、等于、或者大于0的int值。两个指针的类型为void *,这是为了使他们更为通用。

  我们会看到,qsort()可以对任何类型的数组进行排序。类型限定符const告诉编译器这两个指针所指向的对象不应该被修改。

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢