快速排序算法详解:Python 实现及性能分析
快速排序 (Quick Sort) 是常用的排序算法之一,其主要思想是通过选择一个基准元素,将数组分成两个子数组,一个子数组中的所有元素都小于基准元素,另一个子数组中的所有元素都大于基准元素,然后递归地对两个子数组进行排序,直到整个数组有序。下面是一个简单的快排算法实现:
def quick_sort(arr):
if len(arr) <= 1:
return arr
pivot = arr[0]
left = []
right = []
for i in range(1, len(arr)):
if arr[i] < pivot:
left.append(arr[i])
else:
right.append(arr[i])
return quick_sort(left) + [pivot] + quick_sort(right)
在这个快排算法中,我们首先判断数组长度是否小于等于 1,如果是,则直接返回该数组。否则,我们选择数组的第一个元素作为基准元素 pivot,并将剩余元素分别放入左右两个子数组中。然后,我们递归地对左右两个子数组进行快排,并将排序后的左子数组、基准元素、右子数组依次合并成新的数组返回。
快速排序算法的时间复杂度为 O(nlogn),其中 n 表示数组的长度。由于快排算法是一种原地排序算法,它不需要额外的空间,因此空间复杂度为 O(1)。
原文地址: http://www.cveoy.top/t/topic/lHq2 著作权归作者所有。请勿转载和采集!