纯C
快排
#include <stdlib.h>
#include <stdio.h>
void quick_sort(int *arr, int low, int high)
{
int temp;
int i=low, j=high;
if(low < high)
{
temp = arr[low];
while(i != j)
{
while(j>i && arr[j] > temp) --j;
if(i < j)
{
arr[i] = arr[j];
i++;
}
while(j>i && arr[i] < temp) ++i;
if(i < j)
{
arr[j] = arr[i];
j--;
}
}
arr[i] = temp;
quick_sort(arr, low, i-1);
quick_sort(arr, i+1, high);
}
}
int main()
{
int n, arr[1000]={0};
while(scanf("%d", &n) != EOF)
{
//读取
for(int i=0; i<n; i++)
{
scanf("%d", &arr[i]);
}
//快排
quick_sort(arr, 0, n-1);
int flag;
scanf("%d", &flag);
//正序输出
if(!flag)
{
for(int i=0; i<n; i++)
printf("%d ", arr[i]);
}
//倒叙输出
else
{
for(int i=n-1; i>=0; i--)
printf("%d ", arr[i]);
}
printf("\n");
}
return 0;
}
京公网安备 11010502036488号