C语言使用快排的方式有两种,1、直接用库函数stdlib.h里的qsort函数 2、自己编写快排代码(第一种方便,第二种较为自由)
qsort 的函数原型是:
void qsort(void*base,size_t num,size_t width,int(__cdecl*compare)(const void*,const void*));
它的参数为:
1 待排序数组首地址
2 数组中待排序元素数量
3 各元素的占用空间大小
4 指向函数的指针,用于确定排序的顺序
下面附上样例代码:
#include
#include
int comp(const void*a,const void*b)
{
return *(int*)a-*(int*)b;
}
int main()
{
int *array;
int n;
scanf("%d",&n);
array=(int*)malloc(n*sizeof(int));
int i=;
for(;i
{
scanf("%d",(array+i));
}
qsort(array,n,sizeof(int),comp);
for(i=;i
{
printf("%d\t",array[i]);
}
free(array);
array=NULL;
return ;
}
另外自己编一个快排代码也是很方便的,对于初学者学会快排代码也是很有必要的。
下面说一下快排的基本思想。快排是冒泡的改进版,基本思想是选