从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 分钟前
CBMS最新源码
算法
QT 小鲜肉11 分钟前
【Linux命令大全】001.文件管理之mc命令(实操篇)
linux·运维·服务器·前端·笔记
NAGNIP13 分钟前
主流的激活函数有哪些?
算法
NAGNIP15 分钟前
Self-Attention 为什么要做 QKV 的线性变换?又为什么要做 Softmax?
算法
手揽回忆怎么睡16 分钟前
Streamlit学习笔记
笔记·学习
yongche_shi22 分钟前
第八十八篇: 设计一个配置中心
python·面试宝典·设计一个配置中心
core51230 分钟前
PageRank 算法:互联网的“人气投票”
算法·pagerank
小白菜又菜34 分钟前
Leetcode 1523. Count Odd Numbers in an Interval Range
算法·leetcode
itwangyang52041 分钟前
AIDD药物筛选与设计详细方法
人工智能·python
NiceAsiv1 小时前
VSCode之打开python终端 取消conda activate的powershell弹窗
vscode·python·conda