python写快速排序

python写快速排序,第1张

python写快速排序

 基本思想

1选定Pivot中心轴

2将大于Pivot的数字放在Pivot的右边

3将大于Pivot的数字放在Pivot的左边

4分别对左右子序列重复前三步 *** 作

#定义函数
def quicksort(arry: list, l: int,r: int) :
	if l < r:
		i = l
		j = r
		# 取第一个值为中心轴
		pivot = arry[l]
		while i != j:
			# 从右往左找到第一个比中心轴小的元素,交换位置
			while j > i and arry[j] > pivot:
				j -= 1
			if j > i:
				# 如果找到了,进行元素交换
				arry[i] =arry[j]
				i += 1
			# 从左往右找到第一个比中心轴大的元素,交换位置
			while i < j and arry[i] < pivot:
				i += 1
			if i < j:
				arry[j] = arry[i]
				j -= 1
		arry[i] = pivot
		# 以i为中心轴轴进行子序列元素交换
		quicksort(arry, l, i-1)
		quicksort(arry, i+1, r)


#测试
import random
#生成数组
data = [random.randint(-100, 100) for _ in range(10)]

#data =list(input("请输入数字:"))
quicksort(data, 0, len(data) - 1)
print(data)

输出结果

 

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5490953.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-12
下一篇 2022-12-12

发表评论

登录后才能评论

评论列表(0条)

保存