排序

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;
}

上一篇下一篇

猜你喜欢

热点阅读