快速排序——python

def quick_sort(list, i, j):
	if i >= j:
		return list
	piovt = list[i]
	low = i
	high = j
	while i < j:
		# 从后往前找小于pivot的数,如果没找到, j--,如果找到,交换list[i] = list[j]
		while i < j and list[j] >= piovt:
			j -= 1
		list[i] = list[j]
		# 从前往后找大于pivot的数,如果没找到, i++,如果找到,交换list[j] = list[i]
		while i < j and list[i] <= pivot:
			i += 1
		list[j] = list[i]
	list[j]  = piovt
	quick_sort(list, low, i-1)
	quick_sort(list,i+1, high)
	return list

if __name__=="__main__":
    lists=[30,24,5,58,18,36,12,42,39]
    print("排序前的序列为:")
    for i in lists:
        print(i,end =" ")
    print("排序后的序列为:")
    for i in quick_sort(lists,0,len(lists)-1):
        print(i,end=" ")

>>>
排序前的序列为:
30 24 5 58 18 36 12 42 39
排序后的序列为:
5 12 18 24 30 36 39 42 58
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值