首页 > 编程语言 > 详细

算法--选择排序

时间:2020-05-14 21:26:56      阅读:44      评论:0      收藏:0      [点我收藏+]

选择排序

一趟遍历记录最小的数,放到第一个位置;

再一趟遍历记录剩余列表中最小的数,继续放置;

........

问题是:怎么选出最小的数?

代码关键点:

  • 无序区
  • 最小数的位置

技术分享图片

 

 

python代码实现:

li = [9, 2, 3, 7, 5, 6, 4, 8, 1]


def select(lst):
    for i in range(len(lst) - 1):
        min = i  # 把无序区第一个值拿出来
        for j in range(i + 1, len(lst)):
            if lst[j] < lst[min]:  # 如果谁的值比我小,交换
                min = j
        if min != i:  # 如果循环一趟,没有比第一个小的,就不用自己和自己交换了
            lst[i], lst[min] = lst[min], lst[i]


select(li)
print(li)

时间复杂度:O(n2)

算法--选择排序

原文:https://www.cnblogs.com/zhzhlong/p/12891277.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!