从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)))
相关推荐
程序员清洒8 分钟前
CANN模型剪枝:从敏感度感知到硬件稀疏加速的全链路压缩实战
算法·机器学习·剪枝
敏叔V58712 分钟前
AI智能体的工具学习进阶:零样本API理解与调用
人工智能·学习
vortex521 分钟前
几种 dump hash 方式对比分析
算法·哈希算法
鸽芷咕22 分钟前
DrissionPage 成 CANN 仓库爆款自动化工具:背后原因何在?
运维·python·自动化·cann
爱学习的阿磊24 分钟前
使用Fabric自动化你的部署流程
jvm·数据库·python
2501_9418649633 分钟前
科学方法论破解学习时间堆砌误区
学习
堕27437 分钟前
java数据结构当中的《排序》(一 )
java·数据结构·排序算法
少云清44 分钟前
【金融项目实战】7_接口测试 _代码实现接口测试(重点)
python·金融项目实战
深蓝电商API44 分钟前
爬虫IP封禁后的自动切换与检测机制
爬虫·python
m0_550024631 小时前
持续集成/持续部署(CI/CD) for Python
jvm·数据库·python