#include"stdio.h"
void swap(int arr[],int low,int high){
int temp;
temp = arr[low];
arr[low]=arr[high];
arr[high]=temp;
}
int partition(int arr[],int low,int high){
int point;
point=arr[low];
while(low<high){//执行一次为一次划分
while(low<high&&arr[high]>=point){//直到遇到比低位大的
high--;
}
swap(arr,low,high);
while(low<high&&arr[low]<=point){//直到遇到比低位大的
low++;
}
swap(arr,low,high);
}
return low;
}
void QSort(int arr[],int low,int high){
int point;
if(low<high){
point = partition(arr,low,high);
QSort(arr,low,point-1);
QSort(arr,point+1,high);
}
}
void QuickSort(int arr[],int n){
QSort(arr,0,n-1);
}
main(){
int arr[10]={2,4,2,1,3,0,45,2,1,8},i;
QuickSort(arr,10);
printf("sssss:\n");
for(i=0;i<10;i++){
printf("%d\t",arr[i]);
}
}
快速排序
最新推荐文章于 2021-07-24 23:27:25 发布