快速排序法
#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;
i=left;
j=right+1;
do{
do{ i++; }while(array<key);
do{ j--; }while(array>key);
if(i < j)SWAP(array,array);
}while(i<j);
array=array;
array=key;
Quicksort(array,left,j-1);
Quicksort(array,j+1,right);
}
}
int main(void){
int array;
int i;
for(i=0;i<MAX;i++) array=rand()%100 ;
printf("原數列:\n");
for(i=0;i<MAX;i++) printf("%d ",array);
printf("\n\n");
Quicksort(array,0,MAX-1);
printf("排序後:\n");
for(i=0;i<MAX;i++) printf("%d ",array);
printf("\n\n");
system("pause");
return 0;
}
頁:
[1]

