#include <stdio.h>
//选择排序:把大值和小值往两边摞动
int main(void)
{
int x, i, j, temp, min, max, right, left = 0;
int arr[] = {5,61,4,20,25};
printf("请选择升序or降序排序(1表示升序,2表示降序):");
scanf("%d",&x);
right = sizeof(arr) / sizeof(int) - 1;
while (left < right)
{
min = left;
max = right;
for (i = left; i <= right; i++)
{
if (arr[i] < arr[min])
{
min = i;
}
if (arr[i] > arr[max])
{
max = i;
}
}
if(x == 1)
{
temp = arr[max];
arr[max] = arr[right];
arr[right] = temp;
if (min == right)
min = max;
temp = arr[min];
arr[min] = arr[left];
arr[left] = temp;
}
if(x == 2)
{
temp = arr[min];
arr[min] = arr[right];
arr[right] = temp;
if (min == right)
min = max;
temp = arr[max];
arr[max] = arr[left];
arr[left] = temp;
}
left++;
right--;
}
right = sizeof(arr) / sizeof(int) - 1;
for (i = 0; i <= right; i++)
printf("%d ",arr[i]);
return 0;
}