快速排序算法的C语言实现
发布时间:2020-12-16 07:48:17 所属栏目:百科 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 #include stdlib.h#include stdio.hstatic void swap(void *x,void *y,size_t l) { char *a = x,*b = y,c; while(l--) { c = *a; *a++ = *b; *b++ = c
以下代码由PHP站长网 52php.cn收集自互联网 现在PHP站长网小编把它分享给大家,仅供参考 #include <stdlib.h> #include <stdio.h> 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<len; i++){ printf("%s%d",sep,num_list[i]); sep=","; } printf("};n"); } 以上内容由PHP站长网【52php.cn】收集整理供大家参考研究 如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |