21

最近、STLにnth_elementというメソッドが存在することを知りました。説明を引用するには:

Nth_elementは、要素の範囲を部分的に順序付けるという点で、partial_sortに似ています。イテレータnthが指す要素が、全体がその位置にある要素と同じになるように、範囲[first、last)を配置します。範囲[最初、最後)がソートされました。さらに、範囲[nth、last)の要素は、範囲[first、nth)の要素のいずれよりも小さくなりません。

それは平均してO(n)の複雑さを持っていると主張しています。アルゴリズムはどのように機能しますか?説明が見つかりませんでした。

4

2 に答える 2

20

これは選択アルゴリズムと呼ばれ、ウィキペディアには適切なページがあります: http://en.wikipedia.org/wiki/Selection_algorithm

注文統計についてもお読みください: http://en.wikipedia.org/wiki/Order_statistic

于 2010-03-06T13:09:19.637 に答える
1

ほとんどの場合、中央値の中央値アルゴリズムです。

http://en.wikipedia.org/wiki/Selection_algorithm#Linear_general_selection_algorithm_-_.22Median_of_Medians_algorithm.22

于 2010-03-06T13:09:43.597 に答える