从0开始学算法——第六天(进阶排序算法练习)

写在开头的话

学完了进阶排序算法的知识后让我们来连点题目吧。(参考答案也是我写的哈,肯定有改进空间,有更好的方法欢迎交流呀)

题目

参考答案(Python版)

python 复制代码
def insertion_sort(arr):
    """
    插入排序算法实现
    """
    n = len(arr)
    for i in range(1, n):
        key = arr[i]  # 当前待插入的元素
        j = i - 1
        
        # 将大于key的元素向后移动
        while j >= 0 and arr[j] > key:
            arr[j + 1] = arr[j]
            j -= 1
        
        # 将key插入到正确位置
        arr[j + 1] = key
    return arr

if __name__ == "__main__":
    n = int(input())  # 读取序列长度
    a = list(map(int, input().split()))  # 读取序列
    
    # 使用插入排序
    sorted_arr = insertion_sort(a)
    
    # 输出排序结果
    print(' '.join(map(str, sorted_arr)))
相关推荐
码爸1 分钟前
线性回归算法
算法·机器学习·线性回归
kimnoic14 分钟前
Python数据库学习心得:SQLite、MySQL、PostgreSQL优缺点
开发语言·python
snhna20 分钟前
向量数据库深度实战:从 HNSW 到 pgvector、Milvus 选型与 RAG 落地
数据库·人工智能·python·postgresql·milvus
Coder-magician28 分钟前
《代码随想录》刷题打卡day51:图论-part09(dijistra堆优化,Bellman_ford算法)
算法·图论
Nil20836 分钟前
leetcode 763划分字母区间
算法·leetcode·职场和发展
不会就选b1 小时前
算法日常・每日刷题--<动态规划>20
算法·leetcode·动态规划
别动我齐刘海1 小时前
C++ 工程化学习
java·linux·前端·c++·学习·机器学习·机器人
必须得开心呀1 小时前
python编写带界面的软件,需要安装哪些插件
开发语言·python
Wx-bishekaifayuan1 小时前
express皖美特色农产品网售系统53118-计算机课程设计、毕业设计
人工智能·spring boot·后端·python·课程设计·express·旅游
青少儿编程课堂2 小时前
迪杰斯特拉(Dijkstra)算法:单源最短路与赛场路线规划
c++·python·算法·bfs·信息学竞赛