12
Cのローリングメディアンアルゴリズム
私は現在、Cでローリングメジアンフィルター(ローリングミーンフィルターに類似)を実装するアルゴリズムに取り組んでいます。私の文献検索から、それを行うには2つの合理的に効率的な方法があるようです。1つ目は、値の初期ウィンドウを並べ替えてから、バイナリ検索を実行して新しい値を挿入し、反復ごとに既存の値を削除します。 2番目(Hardle and Steiger、1995、JRSS-C、アルゴリズム296から)は、両端にヒープ、もう一方に最小ヒープ、中央に中央値を持つ両頭ヒープ構造を構築します。これにより、O(n log n)の代わりに線形時間アルゴリズムが生成されます。 これが私の問題です。前者の実装は可能ですが、これを何百万もの時系列で実行する必要があるため、効率が非常に重要です。後者は実装が非常に難しいことがわかっています。RのstatsパッケージのコードのTrunmed.cファイルでコードを見つけましたが、かなり判読できません。 線形時間ローリングメディアンアルゴリズムの適切に作成されたC実装を知っている人はいますか? 編集:Trunmed.cコードへのリンクhttp://google.com/codesearch/p?hl=en&sa=N&cd=1&ct=rc#mYw3h_Lb_e0/R-2.2.0/src/library/stats/src/Trunmed.c
114
c
algorithm
r
statistics
median