我用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")
答案 0 :(得分:2)
默认情况下,Python使用 TIM SORT
作为排序技术。