Java で LinkedList として保存されている数値のリストの中央値をどのように見つけますか? ウィキペディアで言及されている選択アルゴリズムがわかりません。それを説明できればボーナスポイント。
質問する
6939 次
4 に答える
3
最適なアルゴリズムはQuickSelect です
記事を読んで QuickSort を理解しよう - 概念は似ています。
于 2009-05-17T19:23:42.050 に答える
2
基本的に 2 つの主要なオプションがあります。
簡単で迅速な方法 - でリストを並べ替えます
O(nlogn)
。中央値は値の半分がそれよりも大きく、半分が小さい値として定義されるため、ちょうどn/2
th の値を取ります - それが中央値です。これがパフォーマンス上重要なタスクである場合は、さまざまな選択アルゴリズムを適用して
O(n)
、適切なケースを提供できます (ただし、最悪のケースで線形性を保証することはできません)。
いずれにせよ、選択アルゴリズムに関するウィキペディアのエントリをチェックしてください。これにより、利用可能なすべての方法について適切なまとめが得られるはずです。
于 2009-05-17T22:22:08.380 に答える