diff --git a/快速排序 b/快速排序 new file mode 100644 index 0000000..e978163 --- /dev/null +++ b/快速排序 @@ -0,0 +1,70 @@ +#include +#include +#define N 10 +void display(int array[], int maxlen) +{ + int i; + + for(i = 0; i < maxlen; i++) + { + printf("%-3d", array[i]); + } + printf("\n"); + + return ; +} +void QuickSort(int *arr, int low, int high) +{ + if (low < high) + { + int i = low; + int j = high; + int k = arr[low]; + while (i < j) + { + while(i < j && arr[j] >= k) + { + j--; + } + + if(i < j) + { + arr[i++] = arr[j]; + } + + while(i < j && arr[i] < k) + { + i++; + } + + if(i < j) + { + arr[j--] = arr[i]; + } + } + + arr[i] = k; + QuickSort(arr, low, i - 1); + QuickSort(arr, i + 1, high); + } +} +int main() +{ + int array[N] ; + int n; + scanf("%d",&n); + for(int i=0;i