我用python写了关于这个问题的代码,但我的问题涉及所有编程语言。
我生成了10,000,000个随机数据点,并使用快速排序对它们进行了排序。
在我的电脑上,它花了大约57秒。
然后,我生成了另外10,000,000个数据点,并使用内置的.sort()函数对它们进行了排序,耗时约4秒。
为什么差异如此之大?.sort()函数使用什么排序算法?
我假设.sort()使用的排序算法是快速排序,对吗?
我使用的快速排序算法如下(不是我的代码,我用它来快速测试它)。
import numpy as py
array = np.random.normal(100, 5, 10000000)
def partition(arr,low,high):
i = ( low-1 )
pivot = arr[high]
for j in range(low , high):
if arr[j] <= pivot:
i = i+1
arr[i],arr[j] = arr[j],arr[i]
arr[i+1],arr[high] = arr[high],arr[i+1]
return ( i+1 )
def quickSort(arr,low,high):
if low < high:
pi = partition(arr,low,high)
quickSort(arr, low, pi-1)
quickSort(arr, pi+1, high)
quickSort(array, 0, len(array)-1)
print("done")发布于 2019-08-28 17:24:10
默认情况下,Python使用TIM SORT作为排序技术。
您可以从https://www.geeksforgeeks.org/timsort/获取更多信息
https://stackoverflow.com/questions/57689046
复制相似问题