当前位置:   article > 正文

用python实现插入排序

用python实现插入排序

插入排序是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,通常采用in-place排序(即只需用到O(1)的额外空间的排序),因而在从后向前扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间。

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

def insertion_sort(arr):
    # 遍历从1到len(arr)
    for i in range(1, len(arr)):
        key = arr[i]
        # 将arr[0..i-1]中比key大的元素后移
        j = i - 1
        while j >= 0 and key < arr[j]:
            arr[j + 1] = arr[j]
            j -= 1
        # 找到key的正确位置并插入
        arr[j + 1] = key
    return arr

# 测试插入排序函数
arr = [12, 11, 13, 5, 6]
insertion_sort(arr)
print("Sorted array is:", arr)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

在这段代码中,insertion_sort 函数接收一个列表 arr 作为参数。从列表的第二个元素开始(索引为1),将当前元素与其左边的元素进行比较,如果当前元素较小,则将其左边的元素向右移动一位,直到找到当前元素应该插入的位置。然后将当前元素插入到该位置。这个过程一直持续到列表的最后一个元素。

测试部分创建了一个未排序的列表 arr,并调用 insertion_sort 函数对其进行排序。最后,打印出排序后的列表。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/224023
推荐阅读
相关标签
  

闽ICP备14008679号