Python实现选择排序

选择排序

实现思路:将一个序列分为两部分,前面是有序序列,后面是无序序列,不断的将后面的无序序列中的最小值添加到前面的有序序列中,直到后面的无序序列中没有值,开始的时候将第一个值作为有序序列。

代码实现:

arr = [7, 4, 3, 67, 34, 1, 8]  # length = 7

def select_sort(arr):
    n = len(arr)
    for j in range(n-1):
        min = j
        for i in range(j+1, n):
            if arr[min] > arr[i]:
                min = i
        arr[min], arr[j] = arr[j], arr[min]
select_sort(arr)
print(arr) # [1, 3, 4, 7, 8, 34, 67]

关键点还是双重循环中参数的配置,在外层循环中我们获取一个0~n-1之间的序列,之后没玄幻一次内部循环中的i的起始值就会加1,直到j+1=n-1的时候循环结束,因为最后一个数的时候就不需要比较了,还有就是交换最小值位置的时候,要放在内层循环结束后进行。
时间复杂度:O(n^2)

猜你喜欢

转载自blog.csdn.net/qq_33988065/article/details/79636669