Python算法实战:使用append()函数实现快速排序算法
快速排序(Quick Sort)是一种常见且高效的排序算法,它基于分治法的思想,可以在平均情况下实现O(nlogn)的时间复杂度。
算法原理:
1. 选择一个元素作为基准(通常选择 个元素)。
2. 将数组划分为两个子数组,使得左子数组中的元素都小于等于基准,右子数组中的元素都大于基准。
3. 对两个子数组递归地应用快速排序算法。
下面是使用Python的append()函数实现快速排序算法的示例代码:
def quick_sort(arr):
if len(arr) <= 1:
return arr
else:
pivot = arr[0] # 将 个元素作为基准
less = []
greater = []
for i in range(1, len(arr)):
if arr[i] <= pivot:
less.append(arr[i]) # 比基准小的元素放在左边的子数组
else:
greater.append(arr[i]) # 比基准大的元素放在右边的子数组
return quick_sort(less) + [pivot] + quick_sort(greater) # 递归地对子数组进行排序,并合并结果
# 使用例子
arr = [5, 2, 9, 1, 7, 6, 3]
sorted_arr = quick_sort(arr)
print(sorted_arr)
在这个例子中,我们首先选择数组的 个元素作为基准,然后根据基准将数组分成两个子数组,分别是小于等于基准和大于基准的元素。然后,我们递归地对两个子数组应用快速排序算法,直到子数组的长度为1或0。最后,将子数组的排序结果合并起来,得到最终的排序结果。
对于给定的数组[5, 2, 9, 1, 7, 6, 3],按照上述步骤进行快速排序的过程如下:
1. 基准为5,小于等于5的元素是[2, 1, 3],大于5的元素是[9, 7, 6]。
2. 对两个子数组[2, 1, 3]和[9, 7, 6]分别应用快速排序算法。在这里,递归的结束条件是子数组的长度为1或0。
3. 对子数组[2, 1, 3]进行排序,得到[1, 2, 3]。
4. 对子数组[9, 7, 6]进行排序,得到[6, 7, 9]。
5. 将子数组[1, 2, 3]、[5]和[6, 7, 9]合并起来,得到最终的排序结果[1, 2, 3, 5, 6, 7, 9]。
快速排序算法的关键在于将数组划分为两个子数组,并递归地对子数组进行排序。这种实现方式可以通过append()函数将小于等于基准的元素放在一个子数组中,将大于基准的元素放在另一个子数组中,而无需创建新的数组进行操作。
总结:
使用append()函数实现快速排序算法的关键在于将小于等于基准的元素和大于基准的元素分别放在不同的子数组中,并递归地对子数组进行排序。这种实现方式简洁高效,并且不需要创建新的数组进行操作。请输入快捷键
