Python插入排序

插入排序是一种简单的排序算法,它通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,通常采用in-place排序(即只需用到O(1)的额外空间的排序),因而在从后向前扫描过程中,需要移动元素以腾出空间。

以下是Python中实现插入排序的示例代码:

python 复制代码
def insertion_sort(arr):
    # 遍历数组中的所有元素,从第二个元素开始
    for i in range(1, len(arr)):
        key = arr[i]  # 当前要插入的元素
        j = i - 1
        # 将大于key的元素向后移动
        while j >= 0 and key < arr[j]:
            arr[j + 1] = arr[j]
            j -= 1
        # 将key插入到正确的位置
        arr[j + 1] = key

# 示例
arr = [12, 11, 13, 5, 6]
insertion_sort(arr)
print("排序后的数组:", arr)

插入排序的时间复杂度是O(n^2),其中n是数组的长度。在最好的情况下(输入数组已经是排序的),时间复杂度是O(n)。插入排序对于小数据集或基本有序的数据集来说效率很高,但对于大数据集,效率较低。

相关推荐
C雨后彩虹29 分钟前
任务总执行时长
java·数据结构·算法·华为·面试
风筝在晴天搁浅33 分钟前
代码随想录 463.岛屿的周长
算法
小鸡吃米…34 分钟前
Python编程语言面试问题二
开发语言·python·面试
一个不知名程序员www1 小时前
算法学习入门---priority_queue(C++)
c++·算法
eve杭1 小时前
AI、大数据与智能时代:从理论基石到实战路径
人工智能·python·5g·网络安全·ai
TL滕1 小时前
从0开始学算法——第十八天(分治算法)
笔记·学习·算法
Honmaple2 小时前
中国四级城市联动数据,包含港澳台,内含json , sql , python 脚本
python·sql·json
BoBoZz192 小时前
Curvatures 曲率的计算、边缘曲率的调整以及曲率、颜色的映射
python·vtk·图形渲染·图形处理
LYFlied2 小时前
【每日算法】LeetCode 84. 柱状图中最大的矩形
前端·算法·leetcode·面试·职场和发展