n 個の要素の配列があります。それらの要素は数字です。私が今しなければならないことは、私の配列でそれらをたくさん見つけることです。sqrt(n)
私は検索についてしなければならないでしょう。
効率の観点から、私にとってより良いオプションは何ですか?
- 線形検索
- 配列の並べ替え (線形時間で言えば、たとえば RadixSort を使用すると可能です) し、二分探索で要素を検索します -
O(logn)
私はいくつかの直感を持っていますが、それを確認して証明する方法がわかりません。線形探索のコストは (最悪の場合) : O(n) * O(sqrt(n)
) です。ソート後の二分探索はO(n) + O(logn) * O(sqrt(n))
.