下面是编程之家 jb51.cc 通过网络收集整理的代码片段。
编程之家小编现在分享给大家,也给大家做个参考。
#include
#include
static void swap(void *x,void *y,size_t l) {
char *a = x,*b = y,c;
while(l--) {
c = *a;
*a++ = *b;
*b++ = c;
}
}
static void sort(char *array,size_t size,int (*cmp)(void*,void*),int begin,int end) {
if (end > begin) {
void *pivot = array + begin;
int l = begin + size;
int r = end;
while(l < r) {
if (cmp(array+l,pivot) <= 0) {
l += size;
} else {
r -= size;
swap(array+l,array+r,size);
}
}
l -= size;
swap(array+begin,array+l,size);
sort(array,size,cmp,begin,l);
sort(array,r,end);
}
}
void qsort(void *array,size_t nitems,void*)) {
sort(array,(nitems-1)*size);
}
typedef int type;
int type_cmp(void *a,void *b){ return (*(type*)a)-(*(type*)b); }
main(){ /* simple test case for type=int */
int num_list[]={5,4,3,2,1};
int len=sizeof(num_list)/sizeof(type);
char *sep="";
int i;
qsort(num_list,len,sizeof(type),type_cmp);
printf("sorted_num_list={");
for(i=0; i
printf("%s%d",sep,num_list[i]);
sep=",";
}
printf("};\n");
}
以上是编程之家(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。
如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。
总结
以上是编程之家为你收集整理的快速排序算法的C语言实现全部内容,希望文章能够帮你解决快速排序算法的C语言实现所遇到的程序开发问题。
如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
小编个人微信号 jb51ccc
喜欢与人分享编程技术与工作经验,欢迎加入编程之家官方交流群!