Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.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
Sorting 对未排序的数组进行n次二进制搜索或对未排序的数组进行n次线性搜索,哪个更好?_Sorting_Time Complexity_Binary Search - Fatal编程技术网

Sorting 对未排序的数组进行n次二进制搜索或对未排序的数组进行n次线性搜索,哪个更好?

Sorting 对未排序的数组进行n次二进制搜索或对未排序的数组进行n次线性搜索,哪个更好?,sorting,time-complexity,binary-search,Sorting,Time Complexity,Binary Search,我想搜索一个未排序的数组,搜索n次,以找到除数组元素以外的小于给定数量的特定值集。因此,排序然后进行n次二进制搜索更好,还是在未排序的数组中进行线性搜索更好?如果n较小,则在无序数组中搜索具有性能优势: n=小 Sorting: Zero time (0) Searching: Linear time (n) Sum: Linear time (n) Sorting: Linearithmic time (n log n) Searching: Logarithmic time (l

我想搜索一个未排序的数组,搜索n次,以找到除数组元素以外的小于给定数量的特定值集。因此,排序然后进行n次二进制搜索更好,还是在未排序的数组中进行线性搜索更好?如果n较小,则在无序数组中搜索具有性能优势:

n=小

Sorting: Zero time (0)
Searching: Linear time (n)    

Sum: Linear time (n)
Sorting: Linearithmic time (n log n)
Searching: Logarithmic time (log n)

Sum: Linearithmic time (n log n)
n=大

Sorting: Zero time (0)
Searching: Quadratic time (n²) 

Sum: Quadratic time (n²)
Sorting: Linearitmnic time (n log n)
Searching: Linearithmic time (n log n)

Sum: Linearithmic time (n log n)
如果n较大,最好先对数组排序,然后进行二进制搜索:

n=小

Sorting: Zero time (0)
Searching: Linear time (n)    

Sum: Linear time (n)
Sorting: Linearithmic time (n log n)
Searching: Logarithmic time (log n)

Sum: Linearithmic time (n log n)
n=大

Sorting: Zero time (0)
Searching: Quadratic time (n²) 

Sum: Quadratic time (n²)
Sorting: Linearitmnic time (n log n)
Searching: Linearithmic time (n log n)

Sum: Linearithmic time (n log n)
我不能告诉你临界点在哪里,但你可以做一些实验