#include <stdio.h>
#include <stdlib.h>
void swap(int a[],int n);
int main()
{
int n,e;
scanf("%d",&n);
int a[n];
for(e=0;e<n;e++)
{
scanf("%d",&a[e]);
}
swap(a,n);
return 0;
}
void swap(int a[],int n)
{
int i,j;
int begin,end,temp;
for(i=0;i<n;i++)
{
begin=i;
end=n-1-i;
for(j=i+1;j<n;j++)
{
if(a[begin]>a[j])
begin=j;
}
for(j=n-2-i;j>=0;j--)
{
if(a[end]<a[j])
end=j;
}
temp=a[i];
a[i]=a[begin];
a[begin]=temp;
temp=a[n-1-i];
a[n-1-i]=a[end];
a[end]=temp;
}
for(i=0;i<n;i++)
{
printf("%d ",a[i]);
}
}
1.设置begin和end,储存下标
2.双向下降比较,如果满足条件则记录下标
3.每次外层循环则进行一次交换