Python选择排序的实现

时间复杂度:

最优时间复杂度:O(n^2)
最坏时间复杂度:O(n^2)
稳定性:不稳定

思路:

1,将未排序的数组的第一个元素与后面所有的元素一一比较,如果大于后面某一个元素,就与其交换位置

2,这样一轮下来排在最前的第一个元素就是最小的那一个,然后再继续手环第1步找出第二小的元素

代码实现

def select_sort(array):
    """
    选择排序
    """
    n = len(array)
    for i in range(n):  # 取第一个数的下标
        for j in range(i+1, n):  # 取后面每一个数的下标
            if array[i] > array[j]:  # 前一个数与后一个数比较
                array[i], array[j] = array[j], array[i]

    return array


array = [5, 2, 7, 3, 1, 8, 6, 4, 9]

res = select_sort(array)  # 选择排序
print(res)

输出结果

[1, 2, 3, 4, 5, 6, 7, 8, 9]

猜你喜欢

转载自blog.csdn.net/qq_37140721/article/details/130316809
今日推荐