Python实现插入排序算法

2023-04-16 00:00:00 算法 排序 插入

插入排序(Insertion Sort)是一种简单的排序算法,对于未排序的数据,在已排序的序列中从后向前扫描,找到相应位置并插入。插入排序比较适合于小规模数据的排序,时间复杂度为O(n^2)。

下面是 Python 实现插入排序算法的代码演示:

def insertion_sort(arr):
    n = len(arr)
    for i in range(1, n):
        key = arr[i]
        j = i - 1
        while j >= 0 and arr[j] > key:
            arr[j+1] = arr[j]
            j -= 1
        arr[j+1] = key
    return arr

# 示例
arr = [5, 2, 9, 1, 5, 6]
print(insertion_sort(arr))

# 输出:[1, 2, 5, 5, 6, 9]

在这个示例中,当 i=1 时,我们将 key 的值设置为 arr[1],即 2。然后将 j 设置为 0,并检查 arr[j] 是否大于 key。由于 arr[j] = 5 > key = 2,我们将 arr[j+1] 的值设置为 arr[j],即将 2 插入到正确的位置。这样,我们就完成了一次迭代。

在下一次迭代中,当 i=2 时,我们将 key 的值设置为 arr[2],即 9。我们将 j 设置为 1 之后发现 arr[j] < key,因此不需要移动 arr[j]。然后,我们将 arr[j+1] 的值设置为 key,即将 9 插入到正确的位置。

这个过程会一直重复,直到我们遍历了整个数组。最终,我们得到一个升序排列的数组。

相关文章