python实现快速排序算法。

简介: 【2月更文挑战第9天】【2月更文挑战第23篇】python实现快速排序算法。

快速排序(Quick Sort)是一种分治的排序算法。它会选择数组中的一个元素作为枢轴(pivot),然后将数组中所有其他元素与该枢轴元素进行比较,按照顺序将其放在枢轴的两边。
以下是使用 Python 实现快速排序的代码:

# 快速排序函数
def quickSort(arr, low, high):
    if low < high:
        # 找到枢轴的正确位置
        pi = partition(arr, low, high)
        # 对左右子数组分别进行递归排序
        quickSort(arr, low, pi - 1)
        quickSort(arr, pi + 1, high)

# 分治函数,用于确定枢轴的正确位置
def partition(arr, low, high):
    pivot = arr[high]
    i = (low - 1)

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

    arr[i + 1], arr[high] = arr[high], arr[i + 1]
    return (i + 1)

# 测试示例
arr = [10, 80, 30, 90, 40, 50, 70]
n = len(arr)

quickSort(arr, 0, n - 1)

print("排序后的数组:")
for item in arr:
    print(item)

这段代码实现了快速排序的程序,其平均时间复杂度为$O(nlogn)$,空间复杂度为$O(logn)$。在这段代码中,我们首先使用quickSort函数来递归地对数组进行排序。然后,partition函数用于确定枢轴的正确位置,并将比枢轴小的元素放在左边,比枢轴大的元素放在右边。最后,我们使用一个示例数组来测试快速排序算法,并输出排序后的结果。

希望这段代码能够帮助到你,如果你还有其他疑问,请随时向我提问。😄

相关文章
|
2天前
|
算法 数据可视化 Python
Python用MCMC马尔科夫链蒙特卡洛、拒绝抽样和Metropolis-Hastings采样算法
Python用MCMC马尔科夫链蒙特卡洛、拒绝抽样和Metropolis-Hastings采样算法
13 6
|
3天前
|
机器学习/深度学习 算法 搜索推荐
Python用机器学习算法进行因果推断与增量、增益模型Uplift Modeling智能营销模型
Python用机器学习算法进行因果推断与增量、增益模型Uplift Modeling智能营销模型
30 12
|
9天前
|
算法 数据可视化 Python
Python贝叶斯推断Metropolis-Hastings(M-H)MCMC采样算法的实现
Python贝叶斯推断Metropolis-Hastings(M-H)MCMC采样算法的实现
12 0
|
9天前
|
数据可视化 算法 数据挖掘
PYTHON实现谱聚类算法和改变聚类簇数结果可视化比较
PYTHON实现谱聚类算法和改变聚类簇数结果可视化比较
|
9天前
|
算法 数据可视化 Python
Python中LARS和Lasso回归之最小角算法Lars分析波士顿住房数据实例
Python中LARS和Lasso回归之最小角算法Lars分析波士顿住房数据实例
15 0
|
10天前
|
机器学习/深度学习 算法 Python
使用Python实现集成学习算法:Bagging与Boosting
使用Python实现集成学习算法:Bagging与Boosting
19 0
|
11天前
|
缓存 算法 Python
python算法对音频信号处理Sonification :Gauss-Seidel迭代算法
python算法对音频信号处理Sonification :Gauss-Seidel迭代算法
|
14天前
|
算法 数据可视化 数据挖掘
使用Python实现DBSCAN聚类算法
使用Python实现DBSCAN聚类算法
154 2
|
15天前
|
存储 算法 安全
Python加密算法有哪些?有什么作用?
这些加密算法的作用在于保护敏感数据的隐私和完整性。它们可以用于数据传输、存储、身份验证和数字签名等领域。通过加密,可以确保数据在传输和存储过程中不被未经授权的人访问或篡改。同时,数字签名可以用于验证数据的来源和完整性,防止数据被篡改或冒充。不同的加密算法在不同的应用场景中起到不同的作用,选择合适的算法取决于安全需求和性能要求。 买CN2云服务器,免备案服务器,高防服务器,就选蓝易云。百度搜索:蓝易云
8 0
|
16天前
|
算法 数据可视化 数据挖掘
使用Python实现K均值聚类算法
使用Python实现K均值聚类算法
18 1