📜  Python的插入排序(1)

📅  最后修改于: 2023-12-03 15:34:31.284000             🧑  作者: Mango

Python的插入排序

插入排序是一种简单的排序算法,其核心思想是将待排序的元素逐个插入一个已经排序好的序列中。插入排序的时间复杂度为O(n^2),适用于少量元素的排序。

以下是Python的插入排序实现:

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

该函数接收一个待排序的数组arr作为参数,利用循环对数组进行插入排序,最终返回排序好的数组。

在排序过程中,使用一个变量key表示待插入的元素,先将第一个元素看作有序序列,从第二个元素开始依次将其插入该有序序列中,每次将key与有序序列中的元素比较,找到合适的位置将其插入即可。

具体过程如下:

  1. 从第二个元素开始,将其作为key。
  2. 与有序序列中的元素依次比较,找到合适的位置将其插入。
  3. 将已插入的元素与有序序列中的元素继续比较,将其插入合适位置。
  4. 循环以上步骤直至全部元素有序。

以下是使用示例:

arr = [3, 1, 5, 7, 2, 4, 9, 6, 8]
sorted_arr = insert_sort(arr)
print(sorted_arr)

输出结果为:

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

通过以上示例,我们可以看到插入排序已经成功排序了传入的数组,具有很好的实用性。