纯净版(考试用)
void QuickSort( int arr[], int low, int high ) {
int temp;
int i=low, j=high;
temp = arr[low];
if ( i<j ) {
while ( i<j ) {
if ( i<j && temp <= arr[j] ) --j;
if ( i<j ) {
arr[i] = arr[j];
i++;
}
if ( i<j && arr[i] <= temp ) ++i;
if ( i<j ) {
arr[j] = arr[i];
j--;
}
}
arr[i] = temp;
QuickSort(arr,low,i-1);
QuickSort(arr,i+1,high);
}
}
注释版
void QuickSort( int arr[], int low, int high ) {
int temp;
int i=low, j=high;
temp = arr[low];
if ( i<j ) {
while ( i<j ) {
if ( i<j && temp <= arr[j] ) --j;
if ( i<j ) {
arr[i] = arr[j];
i++;
}
if ( i<j && arr[i] <= temp ) ++i;
if ( i<j ) {
arr[j] = arr[i];
j--;
}
}
arr[i] = temp;
QuickSort(arr,low,i-1);
QuickSort(arr,i+1,high);
}
}
测试代码(非考试用)
#include<stdio.h>
void QuickSort( int arr[], int low, int high ) {
int temp;
int i=low, j=high;
temp = arr[low];
if ( i<j ) {
while ( i<j ) {
if ( i<j && temp <= arr[j] ) --j;
if ( i<j ) {
arr[i] = arr[j];
i++;
}
if ( i<j && arr[i] <= temp ) ++i;
if ( i<j ) {
arr[j] = arr[i];
j--;
}
}
arr[i] = temp;
QuickSort(arr,low,i-1);
QuickSort(arr,i+1,high);
}
}
int main()
{
int arr[5] = {
1,5,4,2,3,
};
QuickSort(arr,0,4);
for ( int i=0; i<5; i++ ) {
printf("%d,", arr[i]);
}
return 0;
}