本文介绍了python实现快速排序的示例(二分法思想),分享给大家,具体如下:
实现思路
将所需要的数字存入一个列表中
1.首先,设置将最左侧的那个数设置为基准数,在列表中索引为0
2.然后设置两个移动位(用于比较),分别为最左边和最右边
3.然后最右边那位向左移寻找比基准数小的那一位,最右边那位则从左向右寻找比基准数大的那一位
4.再后,将找到的两位对应的数字替换,继续执行3,直到两个移动位相遇,把基准为替换到相遇的那一位
5.最后,将列表以基准数那一位一分为二切开,左边和右边部分继续执行上述1-4步,直到没有比较数为止(也就是一个数),排序完成。
看下图你就明白了:
实现代码
# 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
# 再从左向右寻找
while list[i] <= temp and i < j:
i += 1
if i < j:
t = list[i]
list[i] = list[j]
list[j] = t
# 基准数替换
list[left] = list[i]
list[i] = temp
# 递归调用
quick_sort(list, left, i - 1)
quick_sort(list, i + 1, right)
while True:
list = []
try:
num = int(input('你想比较几个数?\n'))
except ValueError:
continue
for k in range(num):
a = int(input('请输入第' + str(k+1) + '个数:\n'))
list.append(a)
quick_sort(list, 0, num-1)
print('排序结果为:')
for l in range(len(list)):
print(list[l], end=' ')
print()
快速排序比较冒泡排序效率要高得多~
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件!
如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
暂无“python实现快速排序的示例(二分法思想)”评论...
更新动态
2025年10月27日
2025年10月27日
- 小骆驼-《草原狼2(蓝光CD)》[原抓WAV+CUE]
- 群星《欢迎来到我身边 电影原声专辑》[320K/MP3][105.02MB]
- 群星《欢迎来到我身边 电影原声专辑》[FLAC/分轨][480.9MB]
- 雷婷《梦里蓝天HQⅡ》 2023头版限量编号低速原抓[WAV+CUE][463M]
- 群星《2024好听新歌42》AI调整音效【WAV分轨】
- 王思雨-《思念陪着鸿雁飞》WAV
- 王思雨《喜马拉雅HQ》头版限量编号[WAV+CUE]
- 李健《无时无刻》[WAV+CUE][590M]
- 陈奕迅《酝酿》[WAV分轨][502M]
- 卓依婷《化蝶》2CD[WAV+CUE][1.1G]
- 群星《吉他王(黑胶CD)》[WAV+CUE]
- 齐秦《穿乐(穿越)》[WAV+CUE]
- 发烧珍品《数位CD音响测试-动向效果(九)》【WAV+CUE】
- 邝美云《邝美云精装歌集》[DSF][1.6G]
- 吕方《爱一回伤一回》[WAV+CUE][454M]
