快速排序实现代码

快速排序是一种常用的排序算法,它利用分治的思想将一个数组分成两部分,从而实现对整个数组的排序。快速排序的实现代码如下:

def quick_sort(arr, left, right):
    if left >= right:
        return

    pivot_index = partition(arr, left, right)
    quick_sort(arr, left, pivot_index - 1)
    quick_sort(arr, pivot_index + 1, right)

def partition(arr, left, right):
    pivot = arr[right]
    i = left - 1

    for j in range(left, right):
        if arr[j] < pivot:
            i += 1
            arr[i], arr[j] = arr[j], arr[i]

    arr[i + 1], arr[right] = arr[right], arr[i + 1]
    return i + 1

以上代码定义了两个函数:quick_sort和partition。quick_sort函数对传入的数组arr进行递归排序,通过调用partition函数将数组分成两部分,并对这两部分分别进行排序。partition函数是关键部分,它选取数组的最后一个元素作为pivot,然后将小于pivot的元素放在pivot的左边,大于pivot的元素放在pivot的右边。最后返回pivot的索引,用于将数组分成两个部分。

在主程序中,可以这样调用快速排序函数:

arr = [4, 2, 6, 8, 3, 1, 5, 7]
quick_sort(arr, 0, len(arr) - 1)
print(arr)

输出结果为:[1, 2, 3, 4, 5, 6, 7, 8],即按照从小到大的顺序对数组进行了排序。

版权申明:财旺号所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流,不声明或保证其内容的正确性,如发现本站有涉嫌抄袭侵权/违法违规的内容。请发送邮件至 1790309299@qq.com 举报,一经查实,本站将立刻删除。

(0)
小二的头像小二

相关推荐

  • win2003取消关机计划

    在Windows Server 2003中,您可以取消预定的关机计划或延迟计划的执行。以下是在Win2003中取消关机计划的详细步骤: 1. 打开“开始”菜单,选择“运行”。2. 在运行对话框中,输入“cmd”(没有引号)并点击“确定”按钮,以打开命令提示符窗口。3. 在命令提示符窗口中,输入以下命令并按下回车键: `shutdown -a` 这个命令将立即…

    2024年1月14日
    00
  • ps2018怎么导出psd

    要将PSD文件导出为PSD格式,可以使用Photoshop软件自带的功能,具体步骤如下: 1. 在Photoshop中打开要导出的PSD文件。2. 点击菜单栏中的“文件”->“存储为”。3. 在弹出的保存窗口中,选择PSD作为保存类型,并指定保存路径和文件名,最后点击“保存”按钮即可导出PSD文件。 若想通过编程的方式实现PSD文件导出,可以使用Jav…

    2024年3月5日
    00
  • java中的字符使用的是什么编码类型的函数

    在Java中,字符使用的是Unicode编码类型。Unicode是一种编码方案,它为全球范围内的每个字符都定义了一个唯一的编码值。Java在内部使用Unicode编码,它能够表示几乎所有的字符,包括不同语言的文字、符号和特殊字符。 Java提供了多个用于处理字符编码的函数,其中最常用的包括: 1. `String.getBytes()`函数:该函数将字符串转…

    2024年2月16日
    00
  • 如何关闭javaplatformsebinary

    要关闭Java平台SE二进制文件,您可以按照以 1. 按下键盘elete键,并选择任务卡。3. 在进程平台SE二进菜单中,选择“结束程进制文件可以尝试以下方法:1. 单击任务栏中的面板中,选择“程序”或“程序和功能”。序列表中,找“Java。4改/删除”选项。可能因操作系统版本和个人设置而有所不同。在执行这保您有足够的权限来终止程序或卸载程序。

    2023年11月25日
    00
  • sql语句是怎样查询数据的

    SQL语句是用于查询、插入、更新和删除数据库中的数据的一种语言。在这里,我会详细说明如何使用SQL查询数据。 SQL查询语句的基本语法如下: SELECT 列名1, 列名2, … FROM 表名 WHERE 条件表达式; – `SELECT`: 指定要查询的列名,用逗号分隔,也可以使用通配符 `*` 表示查询所有列。– `FROM…

    2023年12月9日
    00

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注