选择排序的Python实现

204 阅读1分钟

选择排序分析

  • 输入: 长度为length的无序数组
  • 输出: 长度为length的升序数组
  • 原理
    1. 从第一个数开始, 遍历至数组的最后一项,取出最小值,与第一项交换
    2. 从第二个数遍历至数组的最后一项,取出最小项,与第二项交换
    3. 以此类推
    4. 直到遍历至最后一个元素,完成排序,得到升序数组

图解

例: [4, 9, 3, 5, 0, 2]

代码实现

def select_sort(arr):
    for i in range(0, len(arr) - 1):
        min_index = i + 1
        for j in range(i+1, len(arr)):
            if arr[min_index] > arr[j]:
                min_index = j
        if arr[i] > arr[min_index]:
            temp = arr[i]
            arr[i] = arr[min_index]
            arr[min_index] = temp
    return arr
if __name__ == '__main__':
    result = select_sort([6, 5, 4, 3, 2, 1])
    print(result)