美文网首页Python编程技术
Python 实现选择排序

Python 实现选择排序

作者: 融合xx | 来源:发表于2019-10-15 21:23 被阅读0次

    选择排序算法步骤:

    1. 找到数组中最小的那个元素中,
    2. 将它和数组的第一个元素交换位置,
    3. 在剩下的元素中找到最小的元素,将它和数组的第二个元素交换位置,
    4. 如此往复,知道将整个数组排序。

    逐步分析:

    1. 假设一个数组有 6 个元素,
      [5, 1, 4, 3, 2, 6]
    2. 第 1 个元素为 5,与剩余 5 个元素相比,1 是最小的元素,所以 5 和 1 交换位置,
      [1, 5, 4, 3, 2, 6]
    3. 第 2 个元素为 5,与剩余 4 个元素相比, 2 是最小的元素,所以 5 和 2 交换位置,
      [1, 2, 4, 3, 5, 6]
    4. 第 3 个元素为 4,与剩余 3 个元素相比, 3 是最小的元素,所以 4 和 3 交换位置,
      [1, 2, 3, 4, 5, 6]
    5. 不断重复直到排好序。
    def select_sort(arr):
        # 索引从 0 到 n-2
        for i in range(len(arr) - 1):
            # 最小元素的索引
            min = i
            # min 与从 i+1 到 n-1 的元素比较
            j = i + 1
            while j < len(arr):
                if arr[min] > arr[j]:
                    # 找到最小的元素
                    min = j
                j += 1
            # 交换位置
            arr[i], arr[min] = arr[min], arr[i]
    
    
    a = [5, 1, 4, 3, 2, 6]
    select_sort(a)
    print(a)
    

    稳定性:不稳定
    复杂度:
    平均 O(n^2)
    最坏 O(n^2)
    最好 O(n^2)

    相关文章

      网友评论

        本文标题:Python 实现选择排序

        本文链接:https://www.haomeiwen.com/subject/zuremctx.html