|
|
|
|
@ -0,0 +1,76 @@
|
|
|
|
|
|
|
|
|
|
#include <stdio.h>
|
|
|
|
|
#include <stdlib.h>
|
|
|
|
|
|
|
|
|
|
#define N 7
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void dayin(int array[], int max)
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
for(int i = 0; i < max; i++)
|
|
|
|
|
{
|
|
|
|
|
printf("%-3d", array[i]);
|
|
|
|
|
}
|
|
|
|
|
printf("\n");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void swap(int *a, int *b)
|
|
|
|
|
{
|
|
|
|
|
int temp;
|
|
|
|
|
temp = *a;
|
|
|
|
|
*a = *b;
|
|
|
|
|
*b = temp;
|
|
|
|
|
}
|
|
|
|
|
void quicksort(int array[], int max, int low, int high)
|
|
|
|
|
{
|
|
|
|
|
int i, j;
|
|
|
|
|
|
|
|
|
|
if(low < high)
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
i = low + 1;
|
|
|
|
|
j = high;
|
|
|
|
|
while(i < j)
|
|
|
|
|
{
|
|
|
|
|
if(array[i] > array[low])
|
|
|
|
|
{
|
|
|
|
|
swap(&array[i], &array[j]);
|
|
|
|
|
j--;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
i++;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if(array[i] >= array[low])
|
|
|
|
|
{
|
|
|
|
|
i--;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
swap(&array[low], &array[i]);
|
|
|
|
|
|
|
|
|
|
quicksort(array, max, low, i);
|
|
|
|
|
quicksort(array, max, j, high);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
int main()
|
|
|
|
|
{
|
|
|
|
|
int array[N] = {5,2,4,3,8,7,9,};
|
|
|
|
|
int max = N;
|
|
|
|
|
|
|
|
|
|
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n");
|
|
|
|
|
dayin(array, max);
|
|
|
|
|
|
|
|
|
|
quicksort(array, max, 0, max-1); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n");
|
|
|
|
|
dayin(array, max);
|
|
|
|
|
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
|