首页 > 代码库 > 最易理解的qsort排序算法
最易理解的qsort排序算法
快速排序算法程序可以写得千奇百怪,但最易理解的个人认为仍是下面的:
#include<stdio.h>#include<time.h>#include<stdlib.h>void swap(int *a ,int *b){ int t = *a; *a = *b; *b = t;}int partition(int array[],int l,int r){ int pivot = array[r]; int curpos = l; int j ; for( j = l;j<r;j++) { if(array[j] < pivot) { swap(&array[j],&array[curpos]); curpos++; } } swap(&array[r],&array[curpos]); return curpos; }void quicksort(int array[],int l,int r){ int interval; if(l < r) { interval = partition(array,l,r); quicksort(array,l,interval-1); quicksort(array,interval+1,r); } }int test_quicksort(){ int number = 10000000; printf("hehe:%d\n",number); int *array = (int*) malloc(number*sizeof(int)); if (array == NULL) { printf("malloc failed\n"); return -1; } int i; printf("----------------------------------------before quick sort--------------\n"); srand(time(NULL)); for(i = 0;i<number;i++) { array[i] = rand()%100000000; //printf("\tarray[%d] = %d\n",i,array[i]); } printf("----------------------------------------after quick sort-----------------\n"); quicksort(array,0,number-1); for(i = 0;i<number;i++) { //printf("\tarray[%d] = %d\n",i,array[i]); } printf("ok\n"); return 0;}int main(){ test_quicksort();}
没有注释,也懂吗?
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。