並べ替えられていない配列が与えられ、効率的な方法で上位 5 つの要素を見つける必要があり、リストを並べ替えることができません。
私の解決策:
配列内の最大要素を見つけます。の上)
この max 要素は、処理/使用後に削除してください。
ステップ 1 と 2 を k 回 (この場合は 5 回) 繰り返します。
時間の複雑さ: O(kn) / O(n)、空間の複雑さ: O(1) .
O(logN) で最大要素を見つけることができると思うので、O(klogN)に改善できます。間違っている場合は修正してください。
これよりもうまくできるでしょうか?max-heap を使用すると効率が悪いのではないでしょうか?
PS - これは宿題ではありません。