排序算法1-选择排序

Posted dzq999

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了排序算法1-选择排序相关的知识,希望对你有一定的参考价值。

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

  还是直接上代码比较直接,这里对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-选择排序的主要内容,如果未能解决你的问题,请参考以下文章

第二篇,选择排序算法:简单选择排序堆排序

[ 数据结构 -- 手撕排序算法第四篇 ] 选择排序

常见的排序算法 选择排序

排序算法——选择排序

排序算法:简单选择排序算法-Java实现

排序算法-选择排序