选择排序(Selection sort)

选择排序(Selection sort)是一种简单直观的排序算法

算法原理

第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小(大)元素,然后放到已排序的序列的末尾。以此类推,直到全部待排序的数据元素的个数为零。选择排序是不稳定的排序方法。

举例:

      第一趟排序:所有数据中找出最小1,与第1位 10 交换位置      [1 | 10,35,61,89,36,55]

      第二趟排序:[10,35,61,89,36,55] 找出最小10,放到第2位   [1,10 | 35,61,89,36,55]

      第三趟排序:[35,61,89,36,55]找出最小35,放到第3位   [1,10,35 | 61,89,36,55]

      第四趟排序:[61,89,36,55]找出最小36,放到第4位  [1,10,35,36 | 61,89,55]

      第五趟排序:[61,89,55]找出最小55,放到第5位    [1,10,35,36,55 | 61,89]

      第六趟排序:[61,89]找出最小61,放到第6位    [1,10,35,36,55,61 | 89]

      第一趟总共进行了六次比较,排序结果: [1,10,35,36,55,61,89]

代码:

def selection_sort(list2):
  for i in range(0, len (list2)-1):
    min_ = i
    for j in range(i + 1, len(list2)):
      if list2[j] < list2[min_]:
        min_ = j
    list2[i], list2[min_] = list2[min_], list2[i]
powered by Bornforthi.comFile Modify: 2021-09-17 15:06:24

results matching ""

    No results matching ""