如何实现快速排序

2023-11-29 13:34:25 浏览数 (2)

1 问题

在我们学习Python过程中,会经常遇到很多数值,在一些题目中会让我们进行简单的排序,但如果数值变多,那么我们如何用更简单的方法实现这些数值快速排序呢?

2 方法

快速排序主要思想为取数组中一个数作为基准值,把所有小于基准值的数放在它的左侧,把大于基准值的数放在它的右侧,方法如下:

  1. 建立一个列表,在其中一些输入无顺序的数值;
  2. 定义一个函数方法实现排序;
  3. 使用if,len()函数来判断列表长度来决定是否需要排序;

代码清单 1

nums = [2,1,4,3,9,6,7] def quicksort(num): if len(num) <=1: return num key = num[0] lst1,lst2, lst3 = [], [], [] for i in range(0,len(num)): if num[i] < key: lst1.append(num[i]) elif num[i] > key: lst3.append(num[i]) else: lst2.append(num[i]) return quicksort(lst1) lst2 quicksort(lst3) print(quicksort(nums))

3 结语

针对多个数值快速排序问题,提出定义空列表来储存比较基准值元素大小方法,通过Python代码输入实验,证明该方法是有效的,本文的方法需要额外开辟空间给用于归类的列表,未来可以继续研究如何使用更简洁更快的代码来进行快速排序。

0 人点赞