选择排序

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

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

........

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

代码关键点:

  • 无序区
  • 最小数的位置

算法--选择排序

 

 

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)

相关文章:

  • 2021-06-22
  • 2021-06-27
  • 2022-01-11
  • 2021-07-11
猜你喜欢
  • 2021-11-27
  • 2021-10-26
  • 2021-09-30
  • 2021-11-27
  • 2021-11-27
  • 2022-01-08
  • 2021-10-21
  • 2021-12-02
相关资源
相似解决方案