快速排序是指通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序。整个排序过程可以递归进行,以此达到整个数据变成有序序列。
代码实现:
- #include
- int a[101], n;//定义全局变量
- void quicksort(int left, int right) {
- int i, j, t, temp;
- if(left > right) {
- return ;
- }
- temp = a[left];
- i = left;
- j = right;
- while(i != j) {
- while(a[j] >= temp && i < j)
- j--;
- while(a[i] <= temp && i < j)
- i++;
- if(i < j) {
- t = a[i];
- a[j] = t;
- }
- }
- a[left] = a[i];
- a[i] = temp;
- quicksort(left,i-1);
- quicksort(i+1,right);
- }
- int main() {
- int i, j, t;
- scanf("%d", &n);
- for(i = 1; i <= n; i++) {
- scanf("%d", &a[i]);
- }
- quicksort(1,n);
- for(i = 1; i <= n; i++) {
- printf("%d ", a[i]);
- }
- return 0;
- }