慢学算法之选择排序

        选择排序在我们日常生活中  

·数组:不管在哪一种算法中都要引入数组的概念。
     
    ·个人理解数组就是一组固定空间中紧密有序排列的容器,而那些我们需要排列的数字就是容器中的盛放物。 慢学算法之选择排序 - 13期 李天贵 - 李天贵 廊坊师范学院信息技术提高班十三期
 
再举个栗子,宿舍一层楼中按照门牌号顺序排列就可以看成一组数组,而住在里面的同学就是一些数,同学可以交换(在某些条件下),但是宿舍是永远不会动的。
慢学算法之选择排序 - 13期 李天贵 - 李天贵 廊坊师范学院信息技术提高班十三期
 


选择排序


                   选择排序是一种简单直观的排序算法。

·算法核心着排

·代码思路:

   (一)假设有序排列的数组a(1)最大的(但a(1)中的数值可能并不是最大的)

 (二)将a(1)中的元素与剩下的所有元素进行比较,比来比去终于找出了真正最大的数值,将数值放在a(1) 中,于是排列的第一个最大值就选出来了 ,第一回合完毕

 (三)重复进行过程一,过程二。

          认为a(2)是最大的,剩下的数值中最大的元素放在a(2)中。第二回合完毕。

          认为a(3)是最大的,剩下的数值中最大的元素放在a(3)中。第三回合完毕。

 ·

 ·

 ·

 ·

            认为a(n-1)是最大的,剩下的数值中最大的元素放在a(n-1)中。第n-1回合完毕。

            最后一个元素nn-1已经在上面比较过了,n即作为最小元素放在最后。

   (四)过程结束

·VB语言中选择排序最核心的一段代码:

 

 For i =1 to n-1                  ’ 外循环
      For j=i+1 to  n              ’内循环
       if  a(1)<a(j)     then 
              t  =a(i)
            a(i)=a(j)
            a(j)= t
       End  if
      next j
 next i

 ·动画演示 

   慢学算法之选择排序 - 13期 李天贵 - 李天贵 廊坊师范学院信息技术提高班十三期


 ·深入分析:

选择排序的在各种初始条件下的排序效果如下:

慢学算法之选择排序 - 13期 李天贵 - 李天贵 廊坊师范学院信息技术提高班十三期

 

慢学算法之选择排序 - 13期 李天贵 - 李天贵 廊坊师范学院信息技术提高班十三期

  1. 选择排序需要花费 (N – 1) + (N – 2) + … + 1 + 0 = N(N- 1) / 2 ~ N2/2次比较 和 N-1次交换操作。
  2. 对初始数据不敏感,不管初始的数据有没有排好序,都需要经历N2/2次比较,这对于一些原本排好序,或者近似排好序的序列来说并不具有优势。在最好的情况下,即所有的排好序,需要0次交换,最差的情况,倒序,需要N-1次交换。
  3. 数据交换的次数较少,如果某个元素位于正确的最终位置上,则它不会被移动。在最差情况下也只需要进行N-1次数据交换,在所有的完全依靠交换去移动元素的排序方法中,选择排序属于比较好的一种。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 16
    评论
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值