美文网首页
[日更挑战-第十二弹]python-快速排序算法

[日更挑战-第十二弹]python-快速排序算法

作者: 小明阿婆 | 来源:发表于2020-05-27 21:56 被阅读0次



今天来分享一个 python 算法,五大基本算法之中的快速排序算法。这个算法也是折腾了好一会,才弄懂了,运用了分而治之的思想,并且很少达到最坏情况下的复杂度O(n)。

使用工具:有 python 环境即可



环境准备:


  1. 搭建python开发环境

源码讲解环节


好的,下面就是喜闻乐见的源码讲解环节了(´◔౪◔)

def partition(arr, low, high):
    i = (low - 1)  # 最小元素索引
    pivot = arr[high]

    for j in range(low, high):

        # 当前元素小于或等于 pivot
        if arr[j] <= pivot:
            i = i + 1
            arr[i], arr[j] = arr[j], arr[i]

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


# arr[] --> 排序数组
# low  --> 起始索引
# high  --> 结束索引

# 快速排序函数
def quickSort(arr, low, high):
    if low < high:
        pi = partition(arr, low, high)

        quickSort(arr, low, pi - 1)
        quickSort(arr, pi + 1, high)


arr = [12, 15, 5, 8, 6, 10]
n = len(arr)
quickSort(arr, 0, n - 1)
print("排序后的数组:")
for i in range(n):
    print("%d" % arr[i])

过程分析



那么本次的分享就到这里了,喜欢的话麻烦点赞关注一下
不喜欢的话可以去看下小编的其他文章,肯定有喜欢的
都不喜欢的话可以点个关注,万一以后有喜欢的呢(๑•̀ㅂ•́)و✧



相关文章

网友评论

      本文标题:[日更挑战-第十二弹]python-快速排序算法

      本文链接:https://www.haomeiwen.com/subject/txggahtx.html