1.算法:

对于一组关键字{K1,K2,…,Kn}, 首先从K1,K2,…,Kn中选择最小值,假如它是 Kz,则将Kz与 K1对换;

然后从K2,K3,… ,Kn中选择最小值 Kz,再将Kz与K2对换。

如此进行选择和调换n-2趟,第(n-1)趟,从Kn-1、Kn中选择最小值 Kz将Kz与Kn-1对换,最后剩下的就是该序列中的最大值,一个由小到大的有序序列就这样形成。

2.python  代码:

def selection_sort(list2):
    for i in range(0, len (list2)):
        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]  # swap

结果为:[2, 3, 4, 21, 33, 44, 45, 67]

3. 时间复杂度  O(n*n)

 

相关文章:

  • 2021-05-17
  • 2021-12-31
  • 2022-02-01
  • 2022-12-23
  • 2022-12-23
  • 2021-06-10
  • 2021-10-20
猜你喜欢
  • 2021-05-21
  • 2021-08-28
  • 2021-05-17
  • 2021-09-15
  • 2021-08-21
  • 2021-08-13
  • 2021-11-05
相关资源
相似解决方案