快速排序就是在原数组中指定一个元素a(随机或数组第一个元素),然后调整数组中所有比a小的元素到a的左边,比a大的元素到a的右边。调整完之后,在用同样的方法处理a左边和右边的子数组,到最后使整个数组全部排序完毕。
#include <stdio.h> #include <stdlib.h> #include <string.h> void quicksort(int a[], int low, int high) { int temp = 0; int i = low; int j = high; temp = a[low]; if(low < high) { while(i<j) { while(a[j]>=temp && i<j) { j--; } a[i] = a[j]; while(a[i]<=temp && i<j) { i++; } a[j] = a[i]; } a[i] = temp; //分界元素回到分界处 quicksort(a,low,i-1); quicksort(a,j+1,high); } } void main() { int array[6] = {4,3,10,82,2,1}; quicksort(array,0,5); for(int i=0;i<6;i++) { printf("%d,",array[i]); } }