码迷,mamicode.com
首页 > 编程语言 > 详细

排序算法1-选择排序

时间:2016-12-16 14:24:27      阅读:195      评论:0      收藏:0      [点我收藏+]

标签:大于   nbsp   执行   选择排序   alt   image   技术分享   技术   idt   

  排序算法,比较常用的是选择排序和冒泡排序

  还是直接上代码比较直接,这里对1到9这几个数字进行了排序 

 

示例代码

int arr[] = {5,8,6,4,9,3,1,7,2};

int length = sizeof(arr)/sizeof(int);

for(int i = 0; i < length - 1; i++)

 {

        for(int j = i + 1; j < length; j++)

        {

            if(arr[i] > arr[j]) 

            {

                //printf("%d和%d马上就换 ",arr[i],arr[j]);  //打印了每次变换位置的数组状态

                //printArray(arr, length);

                int temp = arr[i];

                arr[i] = arr[j];

                arr[j] = temp;

            }

        }

    }

执行结果:1    2    3    4    5    6    7    8    9   

算法分析:

              单擂台模式:

              第0轮把最小的选到位置0

              第1轮把第二小的选到位置1

              xxxx

              xxxx

具体过程打印:

     第0轮:

     5和4马上就换 5    8    6    4    9    3    1    7    2 //一连多,两两比较,只要大于后者,就替换

     4和3马上就换 4    8    6    5    9    3    1    7    2

     3和1马上就换 3    8    6    5    9    4    1    7    2//第一轮找到最大的放到最后位置。

     第1轮:

     8和6马上就换 1    8    6    5    9    4    3    7    2

     6和5马上就换 1    6    8    5    9    4    3    7    2

     5和4马上就换 1    5    8    6    9    4    3    7    2

     4和3马上就换 1    4    8    6    9    5    3    7    2

     3和2马上就换 1    3    8    6    9    5    4    7    2

     第2轮:

     8和6马上就换 1    2    8    6    9    5    4    7    3

     6和5马上就换 1    2    6    8    9    5    4    7    3

     5和4马上就换 1    2    5    8    9    6    4    7    3

     4和3马上就换 1    2    4    8    9    6    5    7    3

     第3轮:

     8和6马上就换 1    2    3    8    9    6    5    7    4

     6和5马上就换 1    2    3    6    9    8    5    7    4

     5和4马上就换 1    2    3    5    9    8    6    7    4

     第4轮:

     9和8马上就换 1    2    3    4    9    8    6    7    5

     8和6马上就换 1    2    3    4    8    9    6    7    5

     6和5马上就换 1    2    3    4    6    9    8    7    5

     第5轮:

     9和8马上就换 1    2    3    4    5    9    8    7    6

     8和7马上就换 1    2    3    4    5    8    9    7    6

     7和6马上就换 1    2    3    4    5    7    9    8    6

     第6轮:

     9和8马上就换 1    2    3    4    5    6    9    8    7

     8和7马上就换 1    2    3    4    5    6    8    9    7

     第7轮:

     9和8马上就换 1    2    3    4    5    6    7    9    8

 

 

附录

1我的粗心小bug

技术分享

 

排序算法1-选择排序

标签:大于   nbsp   执行   选择排序   alt   image   技术分享   技术   idt   

原文地址:http://www.cnblogs.com/dzq1991/p/6186368.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!