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

Python排序算法之选择排序

时间:2019-03-19 20:03:37      阅读:146      评论:0      收藏:0      [点我收藏+]

标签:时间复杂度   title   复制   tmp   sort   dso   tool   int   动作   

选择排序

选择排序比较好理解,好像是在一堆大小不一的球中进行选择(以从小到大,先选最小球为例):

  1. 选择一个基准球

  2. 将基准球和余下的球进行一一比较,如果比基准球小,则进行交换

  3. 第一轮过后获得最小的球

  4. 在挑一个基准球,执行相同的动作得到次小的球

  5. 继续执行4,直到排序好

时间复杂度:O(n^2).  需要进行的比较次数为第一轮 n-1,n-2....1, 总的比较次数为 n*(n-1)/2

直接上代码:

技术图片
def selectedSort(myList):
    #获取list的长度
    length = len(myList)
    #一共进行多少轮比较
    for i in range(0,length-1):
        #默认设置最小值得index为当前值
        smallest = i
        #用当先最小index的值分别与后面的值进行比较,以便获取最小index
        for j in range(i+1,length):
            #如果找到比当前值小的index,则进行两值交换
            if myList[j]<myList[smallest]:
                tmp = myList[j]
                myList[j] = myList[smallest]
                myList[smallest]=tmp
        #打印每一轮比较好的列表
        print("Round ",i,": ",myList)



myList = [1,4,5,0,6]
print("Selected Sort: ")
selectedSort(myList)
技术图片

Python排序算法之选择排序

标签:时间复杂度   title   复制   tmp   sort   dso   tool   int   动作   

原文地址:https://www.cnblogs.com/xiaohuhu/p/10560829.html

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