我在练习快速排序算法,我突然想出了这个解决方案,我需要知道这个算法的时间复杂度和空间复杂度,以及它是否被优化。
def quickSort(arr):
if len(arr) < 2:
return arr
else:
pivot_index = 0
swap_index = 0
for i in range(1, len(arr)):
if arr[pivot_index] > arr[i]:
swap_index += 1
if not swap_index == i:
arr[i], arr[swap_index] = arr[swap_index], arr[i]
arr[pivot_index], arr[swap_index] = arr[swap_index], arr[pivot_index]
return quickSort(arr[:swap_index]) + [arr[swap_index]] + quickSort(arr[swap_index + 1:])
print(quickSort([1,3,3,3]))
发布于 2022-12-04 12:17:15
这几页解释得很好。另外,通过对排序函数的时间和空间度量绘制一些图表,您将能够自己分析它。
https://www.geeksforgeeks.org/time-complexity-and-space-complexity/ https://iq.opengenus.org/time-and-space-complexity-of-quick-sort/
https://stackoverflow.com/questions/74675096
复制相似问题