快速排序和冒泡排序是两种常用的排序算法。下面分别给出它们的python实现:
快速排序:
def quick_sort(arr):
if len(arr) <= 1:
return arr
pivot = arr[len(arr) // 2]
left = [x for x in arr if x < pivot]
middle = [x for x in arr if x == pivot]
right = [x for x in arr if x > pivot]
return quick_sort(left) + middle + quick_sort(right)
冒泡排序:
def bubble_sort(arr):
n = len(arr)
for i in range(n):
for j in range(0, n-i-1):
if arr[j] > arr[j+1]:
arr[j], arr[j+1] = arr[j+1], arr[j]
return arr
这两种排序算法的时间复杂度都是O(nlogn),但是实际上快速排序的性能要优于冒泡排序,因为快速排序是一种分治的算法,可以在平均时间内达到较好的排序效果。