注:上次写到的折半查找,只适用与有序(递增或递减)序列 快速排序算法 #include <stdio.h> void swap(int *a, int *b) { int tmp = *a; *a = *b; *b = tmp; } void quickSort( int array[], int fristindex, int lastindex) { int i,j; if( fristindex < lastindex ) { i = fristindex; j = lastindex +1; while(1) { do { i++; } while(array[i]<array[fristindex] && i != lastindex); do { j--; } while(array[j]>array[fristindex] && j!= fristindex); if(i<j) swap(&array[i], &array[j]); else break; } swap(&array[fristindex], &array[j]); quickSort(array, 0, j-1); quickSort(array, j+1, lastindex); } } int main(int argc, char **argv) { int array[] = {5,7,4,2,11,10,6}; for(int i=0;i<=6;i++) printf("%d/t",array[i]); printf("/n"); quickSort(array, 0, 6); for(int j=0;j<=6;j++) printf("%d/t",array[j]); printf("/n"); return 0; }