Python实现插入排序算法
插入排序(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
插入到正确的位置。
这个过程会一直重复,直到我们遍历了整个数组。最终,我们得到一个升序排列的数组。
相关文章