编程实现qsort
#include <stdio.h>
#include <stdlib.h>
#define SIZE(a) sizeof(a)/sizeof(a[0])
void swap(int *x, int *y)
{
int tmp = 0;
tmp = *x;
*x = *y;
*y = tmp;
}
void qsort(int arr[], int low, int high)
{
int i = low;
int j = high;
int key = arr[low];
if (low >= high)
{
return;
}
while (low < high)
{
while (low < high && arr[high] >= key)
{
high--;
}
if (arr[high] < key)
{
swap(&arr[low], &arr[high]);
low++;
}
while (low < high && arr[low] <= key)
{
low++;
}
if (arr[low] > key)
{
swap(&arr[low], &arr[high]);
high--;
}
}
qsort(arr, i, low - 1);
qsort(arr, low + 1, j);
}
int main()
{
int arr1[] = { 5,8,3,6,7,1,9,2,4 };
int size = SIZE(arr1);
qsort(arr1, 0, size-1);
for (int i = 0; i < size; ++i)
{
printf("%d ", arr1[i]);
}
system("pause");
return 0;
}