![](https://img.haomeiwen.com/i5958956/2b552132b2eadcbb.jpg)
今天来分享一个 python 算法,五大基本算法之中的快速排序算法。这个算法也是折腾了好一会,才弄懂了,运用了分而治之的思想,并且很少达到最坏情况下的复杂度O(n)。
使用工具:有 python 环境即可
环境准备:
- 搭建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])
过程分析
![](https://img.haomeiwen.com/i5958956/83f5782d63cba133.png)
那么本次的分享就到这里了,喜欢的话麻烦点赞关注一下
不喜欢的话可以去看下小编的其他文章,肯定有喜欢的
都不喜欢的话可以点个关注,万一以后有喜欢的呢(๑•̀ㅂ•́)و✧
![](https://img.haomeiwen.com/i5958956/4c620ab48d132b90.png)
网友评论