第七周:数组运算---3-排序初步

// 找出数组中最大数的下标

#include<stdio.h>

int max(int a[],int len)
{
    int maxid = 0;
    int i;
    for( i=1; i<len; i++ ) 
    {
        if (a[i]>a[maxid])
        {
            maxid = i;
        }
    }

    return maxid;
} 

int main()
{
    int a[]={2,45,6,12,87,34,90,24,23,11,65};
    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;
    int i;
    for( i=1; i<len; i++ ) 
    {
        if (a[i]>a[maxid])
        {
            maxid = i;
        }
    }

    return maxid;
} 

int main()
{
    int a[]={2,45,6,12,87,34,90,24,23,11,65};
    int maxid = max(a, sizeof(a)/sizeof(a[0]));

    //swap a[maxid], a[len-1] 
    int t = a[maxid];
    a[maxid] = a[sizeof(a)/sizeof(a[0])-1];
    a[sizeof(a)/sizeof(a[0])-1] = t;

    printf("%d\n", maxid);

    return 0;
}

#include<stdio.h>

int max(int a[],int len)
{
    int maxid = 0;
    int i;
    for( i=1; i<len; i++ ) 
    {
        if (a[i]>a[maxid])
        {
            maxid = i;
        }
    }

    return maxid;
} 

int main()
{
    int a[]={2,45,6,12,87,34,90,24,23,11,65};
    int len = sizeof(a)/sizeof(a[0]);
    int i;

    //选择排序
    for( i=len-1; i>0 ; i--)
    {
        int maxid = max(a,i+1);
        //swap a[maxid], a[len-1]
        int t = a[maxid];
        a[maxid] = a[i];
        a[i] = t;
    }

    for( i=0; i<len; i++)
    {
        printf("%d ",a[i]);    
    }

    return 0;
}
全部评论

相关推荐

03-03 23:42
复旦大学 Java
tongx_:闹呢,这找不到其他人还活不活
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务