快速排序python实现

本文介绍了一种高效的排序算法——快速排序,并提供了详细的实现步骤及Python代码示例。通过对基准值的选择与交换操作,实现了对数组的有效划分,最终完成排序。
部署运行你感兴趣的模型镜像
data = [45,3,2,6,3,78,5,44,22,65,46]

def quickSort(data, start, end):
    i = start
    j = end
    # i与j重合时,一次排序结束
    if i >= j:
        return
    # 设置最左边的数为基准值
    flag = data[start]
    while i < j:
        while i<j and data[j] >= flag:
            j -= 1
        # 找到右边第一个小于基准的数,赋值给左边i。此时左边i被记录在flag中
        data[i] = data[j]
        while i<j and data[i] <= flag:
            i += 1
        # 找到左边第一个大于基准的数,赋值给右边的j。右边的j的值和上面左边的i的值相同
        data[j] = data[i]
    # 由于循环以i结尾,循环完毕后把flag值放到i所在位置。
    data[i] = flag
    # 除去i之外两段递归
    quickSort(data, start, i-1)
    quickSort(data, i+1, end)

quickSort(data,0, len(data)-1)
print data

您可能感兴趣的与本文相关的镜像

Python3.11

Python3.11

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值