排序
2020-03-04 本文已影响0人
持之以蘅
找出最大的位置
#include <stdio.h>
int max(int a[],int len)
{
int maxid=0;
for(int i=1;i<len;i++){
if(a[i]>a[maxid])
{
maxid=i;
}
}
return maxid;
}
int main()
{
int a[]={3,2,6,99,100,8,0,7};
int maxid=max(a,sizeof(a)/sizeof(a[0]));
printf("%d\n",maxid);
return 0;
}
交换
#include <stdio.h>
int max(int a[],int len)
{
int maxid=0;
for(int i=1;i<len;i++){
if(a[i]>a[maxid])
{
maxid=i;
}
}
return maxid;
}
int main()
{
int a[]={3,2,6,99,100,8,0,7};
//int maxid=max(a,sizeof(a)/sizeof(a[0]));
int len=sizeof(a)/sizeof(a[0]);
for(int i=len-1;i>0;i--)//i=0的时侯没有必要比较
{
int maxid=max(a,i+1);
int t=a[maxid];
a[maxid]=a[i];
a[i]=t;
}
//a[maxid]=a[sizeof(a)/sizeof(a[0])-1];
//a[sizeof(a)/sizeof(a[0])-1]=t;
for(int i=0;i<len;i++)
{
printf("%d ",a[i]);
}
return 0;
}