Python实现归并排序算法

Python实现归并排序算法

以下是 Python 中的归并排序算法实现示例:

复制代码
def merge_sort(arr):
    if len(arr) > 1:
        mid = len(arr) // 2  # 计算中间索引
        left_half = arr[:mid]  # 划分左半部分
        right_half = arr[mid:]  # 划分右半部分

        # 递归调用对左右两半进行排序
        merge_sort(left_half)
        merge_sort(right_half)

        # 合并已排序的左右两半
        i = j = k = 0
        while i < len(left_half) and j < len(right_half):
            if left_half[i] < right_half[j]:
                arr[k] = left_half[i]
                i += 1
            else:
                arr[k] = right_half[j]
                j += 1
            k += 1

        # 处理剩余的元素
        while i < len(left_half):
            arr[k] = left_half[i]
            i += 1
            k += 1
        while j < len(right_half):
            arr[k] = right_half[j]
            j += 1
            k += 1

    return arr

# 测试归并排序算法
arr = [12, 11, 13, 5, 6, 7]
print("原始数组:", arr)
sorted_arr = merge_sort(arr)
print("排序后的数组:", sorted_arr)

这段代码定义了一个 merge_sort 函数,该函数使用归并排序算法对输入数组进行排序。您可以通过修改 arr 变量来测试不同的输入数组。

相关推荐
树獭非懒1 天前
AI大模型小白手册|Embedding 与向量数据库
后端·python·llm
唐叔在学习1 天前
就算没有服务器,我照样能够同步数据
后端·python·程序员
曲幽1 天前
FastAPI流式输出实战与避坑指南:让AI像人一样“边想边说”
python·ai·fastapi·web·stream·chat·async·generator·ollama
Flittly1 天前
【从零手写 AI Agent:learn-claude-code 项目实战笔记】(1)The Agent Loop (智能体循环)
python·agent
vivo互联网技术1 天前
ICLR2026 | 视频虚化新突破!Any-to-Bokeh 一键生成电影感连贯效果
人工智能·python·深度学习
敏编程1 天前
一天一个Python库:virtualenv - 隔离你的Python环境,保持项目整洁
python
喝茶与编码1 天前
Python异步并发控制:asyncio.gather 与 Semaphore 协同设计解析
后端·python
zone77391 天前
003:RAG 入门-LangChain 读取图片数据
后端·python·面试
用户8356290780511 天前
在 PowerPoint 中用 Python 添加和定制形状的完整教程
后端·python