栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python写快速排序

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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)

输出结果

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/498833.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号