黑马程序员技术交流社区

标题: 选择排序法(优化版)【附带详细注释】 [打印本页]

作者: ToBeJeek1    时间: 2015-11-20 23:38
标题: 选择排序法(优化版)【附带详细注释】
#include <stdio.h>

int main(int argc, const char * argv[]) {

    int a[]={6,23,53,15,17,46,23,51,98,88};

    int len = sizeof(a)/sizeof(int);

    //控制遍数
    for (int i = 0; i < len -1; i++) {

        //记录最小值的下标
        int minLoc = i;

        //设置变量,假设第一个元素为最小值
        int min=a;

        //对未排序的元素进行遍历
        for (int j = i+1; j < len; j++) {

            //用打擂台法找出最小值,并记录下标
            if (min > a[j]) {

                //记录最小值
                min = a[j];

                //记录最小值的下标
                minLoc = j;

            }

        }

        //当minLoc不改变时,不用进行交换,否则就是自己与自己交换
        if (minLoc != i) {

            //将未排序元素中的最小值与前面已经排序的元素的下一位进行交换
            int temp = a;
            a = a[minLoc];
            a[minLoc] = temp;

        }


    }

    //遍历打印数组
    for (int i = 0; i < len; i++) {

        printf("%d ",a);

    }

    printf("\n");
    return 0;
}



作者: Mr.Yan    时间: 2015-11-21 00:13
干得漂亮!赞一个~
作者: 唐阿丽    时间: 2015-11-21 11:37
支持一下
作者: 649685603    时间: 2015-11-21 22:09
我是来刷黑马币的。。。目的十分明确
作者: ToBeJeek1    时间: 2015-11-22 10:39
唐阿丽 发表于 2015-11-21 11:37
支持一下

谢谢支持!
作者: ToBeJeek1    时间: 2015-11-22 10:40
649685603 发表于 2015-11-21 22:09
我是来刷黑马币的。。。目的十分明确

这也太直接了吧!>_<
作者: ToBeJeek1    时间: 2015-11-22 10:41
Mr.Yan 发表于 2015-11-21 00:13
干得漂亮!赞一个~

好好好好好




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2