Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 如何测量选择排序的时间? 当我测量选择排序的时间时 随机数组大小为10000,随机数范围为1000 它给了我14秒的时间,当大小为1000000时,它给了我1分钟,我想应该不到5秒 你能帮我用算法缩短时间吗_Python 3.x_Algorithm_Sorting - Fatal编程技术网

Python 3.x 如何测量选择排序的时间? 当我测量选择排序的时间时 随机数组大小为10000,随机数范围为1000 它给了我14秒的时间,当大小为1000000时,它给了我1分钟,我想应该不到5秒 你能帮我用算法缩短时间吗

Python 3.x 如何测量选择排序的时间? 当我测量选择排序的时间时 随机数组大小为10000,随机数范围为1000 它给了我14秒的时间,当大小为1000000时,它给了我1分钟,我想应该不到5秒 你能帮我用算法缩短时间吗,python-3.x,algorithm,sorting,Python 3.x,Algorithm,Sorting,您似乎在问两个问题:如何改进选择排序,以及如何精确计时 两者的简单答案都是:你不能。如果修改排序算法,则不再是选择排序。如果可以的话,行业标准是快速排序,那么请看一下该算法,它要复杂得多,但在logn时间运行,而不是选择排序在^2时间运行 至于你的另一个问题,我该如何精确计时,你也不能。计算机不再只处理一件事了。您的操作系统不断地在任务之间穿插线程。当程序运行时,您的CPU完全专用于该程序的可能性为0%。这是什么意思?这意味着每次运行程序时,程序完成所需的时间都会发生变化。除此之外,还需要考虑调

您似乎在问两个问题:如何改进选择排序,以及如何精确计时

两者的简单答案都是:你不能。如果修改排序算法,则不再是选择排序。如果可以的话,行业标准是快速排序,那么请看一下该算法,它要复杂得多,但在logn时间运行,而不是选择排序在^2时间运行


至于你的另一个问题,我该如何精确计时,你也不能。计算机不再只处理一件事了。您的操作系统不断地在任务之间穿插线程。当程序运行时,您的CPU完全专用于该程序的可能性为0%。这是什么意思?这意味着每次运行程序时,程序完成所需的时间都会发生变化。除此之外,还需要考虑调用time.time所需的时间。

您的问题是如何提高排序效率,还是如何准确地对其进行计时?您的代码不起作用-selection\u sort的参数名为selection\u random\u array,但函数体使用selection\u array。你能给出一个最小的工作示例,包括随机数组生成。我想要选择,我用最好的CPU运行。我想要的是将时间减少到5秒或更少。我想平均是这样。你不能,这就是我要说的。选择排序不是快速排序。渐近时间复杂度不是一个很好的CPU问题。是的,OP提出了两个不同的问题,但你都没有回答——OP没有问如何使选择排序渐近更有效,OP也没有问如何精确地测量运行时间。当然,可以编写一个更高效的选择排序实现,同时仍然保持选择排序,并且可以比OP的代码更准确地度量运行时间。
def selection_sort(selection_random_array):
    for i in range(len(selection_array) - 1):
        minimum_index = i
        for j in range(i + 1, len(selection_array)):
            if selection_array[j] < selection_array[minimum_index]:
                minimum_index = j
        selection_array[i], selection_array[minimum_index] = selection_array[minimum_index], selection_array[i]
    return selection_array

print("--------selection_sort----------")
start1 = time.time()
selection_sort(selection_random_array)
end1 = time.time()
print(f"random array: {end1 - start1}")