#include <stdio.h>
static void Printf(const int* str,int lengh){
printf("start print : ");
int i = 0;
while(++i <= lengh)
printf("%d ",str[i-1]);
printf("\n");
}
void Swap(int *arr,int low,int high){
int temp = arr[low];
arr[low] = arr[high];
arr[high] = temp;
}
int FindMid(int *arr,int low,int high){
int valid = high;
int i = low-1;
int j = high;
while(1){
while(arr[++i] < arr[valid]);
while(arr[--j] > arr[valid]);
if(i < j)
Swap(arr,i,j);
else
break;
}
Swap(arr,i,valid);
return i;
}
void QuickSort(int *arr,int low,int high){
if(low < high){
int mid = FindMid(arr,low,high);
QuickSort(arr,low,mid - 1);
QuickSort(arr,mid + 1,high);
}
}
void QSort(int *arr,int lengh){
QuickSort(arr,0,lengh-1);
}
int main(int argc,char* argv[]){
int array[10] = {1,2,3,4,5,6,7,8,9,0};
Printf(array,10);
QSort(array,10);
Printf(array,10);
return 0;
}
快速排序 linux c
于 2021-04-07 16:39:31 首次发布