排序

作者: 持之以蘅 | 来源:发表于2020-03-04 22:07 被阅读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;
    }
    
    

    相关文章

      网友评论

          本文标题:排序

          本文链接:https://www.haomeiwen.com/subject/sprwlhtx.html