您的位置:首页 > 编程语言 > Python开发

快速排序 - Python

2018-11-10 21:50 127 查看

快速排序

1. 编程思路:
利用基准数对数组进行分割,然后对左右再次进行相似操作直到只剩一个元素未进行排序
1. 定义一个函数结束的条件:如果被传入的disarray中只剩一个元素的话返回disarray并停止调用
2. 在数组中选择一个基准数(baseValue),通常选择为数组中的第一个元素(array[0])
3. 遍历数组,将比基准数大的放到基准数右侧,将比基准数小的放到基准数右侧
4. 递归调用函数对左右数组进行2、3步
2. 伪代码:
def quick_sort(待排序数组/被分割出的数组):
检查数组元素是否到达结束条件,符合条件则直接返回
定义空数组left_array、right_array存放遍历得到的比basevalue大或小的数
遍历数组将比baseValue大或小的数分别存入空数组中
最重要一步:递归调用不断对分割出来的小数组进行排序
3. 代码:
array = [3,1,5,4,2]

def quick_sort(disarray):
if len(disarray) <= 1:
return disarray
left_array = []
right_array = []
baseValue = disarray.pop()
for x in disarray:
if x < baseValue:
left_array.append(x)
else:
right_array.append(x)
return quick_sort(left_array)+[baseValue]+quick_sort(right_array)

print(quick_sort(array))

# [1, 2, 3, 4, 5]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: