|
|
- #include <stdio.h>
- #include <stdlib.h>
- #include <time.h>
- #define MAX 10
- #define SWAP(x,y) {int tmp=x; x=y; y=tmp;}
- void Quicksort(int array[],int left,int right){
- int i, j, key;
- if(left<right){
- key=array[left];
- i=left;
- j=right+1;
- do{
- do{ i++; }while(array[i]<key);
- do{ j--; }while(array[j]>key);
- if(i < j)SWAP(array[i],array[j]);
- }while(i<j);
- array[left]=array[j];
- array[j]=key;
- Quicksort(array,left,j-1);
- Quicksort(array,j+1,right);
- }
- }
- int main(void){
- int array[MAX];
- int i;
-
- for(i=0;i<MAX;i++) array[i]=rand()%100 ;
- printf("原數列:\n");
- for(i=0;i<MAX;i++) printf("%d ",array[i]);
- printf("\n\n");
- Quicksort(array,0,MAX-1);
-
- printf("排序後:\n");
- for(i=0;i<MAX;i++) printf("%d ",array[i]);
- printf("\n\n");
- system("pause");
- return 0;
- }
複製代碼 |
|