选择排序之简单选择排序

活动地址:CSDN21天学习挑战赛

目录

     一、选择排序的介绍

     二、简单选择排序

     三、算法流程

     四、实例

    五、算法分析 

一、选择排序的介绍

     选择排序的原理:选择排序的主要操作是选择,主要思想:每趟排序在待排序序列中选择最小的元素记录,添加到有序序列中 。

选择排序主要有简单选择排序(直接选择排序)和堆排序,堆排序算法可以看作是简单选择排序算法的改进;这里主要介绍简单选择排序算法。

二、简单选择排序

  1、简单选择排序的基本思想:
       第i趟在n-i+1(i=1,2,3.......n-1)个记录中选择最小的记录作为有序序列的第i个记录。

 2、简单选择排序需解决的关键问题

      如何让在待排序列中选择最小的记录

     解决方法:设置一个整型变量min,min用于记录在一趟比较的过程中最小记录的位置

 三、算法流程:

         1)以第一趟遍历为例

            

            在之后的遍历过程中,发现0比3小,所以min存放元素3所在的位置下标

            

           遍历完一趟的结果为:

             

  2) 算法描述:
     min=i;

    for(j=i+1;j<n;j++)

   { 

     if(r[j]<r[min])

      min=j;

   }

  if(min!=i)

  交换r[i]和r[min]的位置;

四、实例

输入:待排序序列 :2 4 0 8 6

输出:从小到大的排序序列 :0 2 4 6 8

代码如下:

 

运行结果:
 

 五、算法分析

   移动次数:最好情况(正序)0次  例如:0 2 4 6 8

                     最差情况(逆序)3*(n-1)次  例如:8 6 4 2 0

  比较次数:n*(n-1)/2

  时间复杂度:O(n^2)

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值