A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 张水 中级黑马   /  2015-10-24 22:59  /  1336 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

选择排序的思路(结果从大到小)
第一步确定要排序的数组
第二步假定第一个元素是最大值
第三步找到第二个元素,然后执行下面的选择语句
第四步所取的元素小于或等于假定的最大元素就取下一个元素和假定的最大值
如果所取的元素大于假定的最大值就把当前元素设置为最大值,接着去下一个元素的和最大值比较
第五步把找到的最大值和自己设置的最大值互换
第六步排序的最终代码
#include <stdio.h>
int main()
{
    //要排序的数组
    int a[] = {1,2,4,3,8,5};
    //最大值的脚标
    int tempIndexMax = 0;
    for(int i = 0; i<5 ; i++)//第几轮排序
    {
        int tempIndexMax = i;
        for(int j = i+1; j<6;j++)//当前这轮排序的具体实现
        {
            if(a[tempIndexMax]<a[j])//a[j]是否大于先前的"最大值"
            {
                tempIndexMax=j; //如果a[j]大于先前"最大值",改变"最大值的脚标"
            }
        }
        //输出每轮排序的最大值脚标
        printf("第%d轮排序的最大值脚标是%d\n",i,tempIndexMax);
        //把找到的最大值和之前的最大值互换
        int temp = a;
        a=a[tempIndexMax];
        a[tempIndexMax] = temp;
    }
    for(int k = 0; k<6 ;k++)
    {
        printf("%d\t",a[k]);
    }
}
学习的内容就分享到这
明天继续!!!

评分

参与人数 1黑马币 +6 收起 理由
Andy罗锟 + 6 很给力!

查看全部评分

3 个回复

倒序浏览
很详细一看就会了
回复 使用道具 举报
很详细啊,看看就明白了。有才
回复 使用道具 举报

很详细啊,看看就明白了。有才.
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马