python二分法排序_python实现快速排序的示例(二分法思想)

本文通过实例代码介绍了Python如何使用二分法思想实现快速排序,包括排序思路和详细代码,对比了快速排序与冒泡排序的效率差异。
摘要由CSDN通过智能技术生成

本文介绍了python实现快速排序的示例(二分法思想),分享给大家,具体如下:

实现思路

将所需要的数字存入一个列表中

1.首先,设置将最左侧的那个数设置为基准数,在列表中索引为0

2.然后设置两个移动位(用于比较),分别为最左边和最右边

3.然后最右边那位向左移寻找比基准数小的那一位,最右边那位则从左向右寻找比基准数大的那一位

4.再后,将找到的两位对应的数字替换,继续执行3,直到两个移动位相遇,把基准为替换到相遇的那一位

5.最后,将列表以基准数那一位一分为二切开,左边和右边部分继续执行上述1-4步,直到没有比较数为止(也就是一个数),排序完成。

看下图你就明白了:

201831295114689.png?201821295131

实现代码

# coding: utf-8

# 快速排序,利用二分思想实现

def quick_sort(list, left, right):

if left > right:

return

temp = list[left]

i = left

j = right

while i != j:

# 先从右向左寻找

while list[j] >= temp and i < j:

j -= 1

# 再从左向右寻找<

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值