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

Kathy ·
更新时间:2024-11-14
· 623 次阅读

本文介绍了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()

快速排序比较冒泡排序效率要高得多~

您可能感兴趣的文章:python快速排序代码实例Python实现的数据结构与算法之快速排序详解Python实现快速排序算法及去重的快速排序的简单示例Python实现快速排序和插入排序算法及自定义排序的示例快速排序的四种python实现(推荐)快速排序的算法思想及Python版快速排序的实现示例javascript与Python快速排序实例对比python 二分查找和快速排序实例详解Python编程二分法实现冒泡算法+快速排序代码示例Python实现的插入排序,冒泡排序,快速排序,选择排序算法示例Python一行代码实现快速排序的方法Python实现快速排序的方法详解



示例 二分 二分法 快速排序 排序 Python

需要 登录 后方可回复, 如果你还没有账号请 注册新账号