#include <stdio.h>
#include <stdlib.h>
void quickSort(int* arr, int start ,int end)
{
int baseData = arr[start]; //取基准数;
int i = start, j = end;
int blankIdx = start; //挖空的坐标;
int flag = 0;
while (i < j)
{
if (flag == 0)
{
if (arr[j] <= baseData)
{
arr[blankIdx] = arr[j];
blankIdx = j;
i++;
flag = 1;
}
else
j--;
}
else
{
if (arr[i] > baseData)
{
arr[blankIdx] = arr[i];
blankIdx = i;
j--;
flag = 0;
}
else
{
i++;
}
}
}
arr[blankIdx] = baseData;
if (start<blankIdx-1)
quickSort(arr, start, blankIdx-1 );
if (blankIdx<end)
quickSort(arr, blankIdx+1, end);
}
int main()
{
int arr[9] = { 4, 3, 7,9,5, 8, 6, 5,2 };
for (int i = 0; i < 9; ++i)
printf("%d ", arr[i]);
printf("\n");
printf("---------排序后-------\n");
quickSort(arr, 0,8);
for (int i = 0; i < 9; ++i)
printf("%d ", arr[i]);
printf("\n");
system("pause");
return 0;
}