jeak回答ポイント 97ptウォッチ 5

比較アルゴリズム 改善案求む

以前yahooに記載したものですが良質な回答が得られなかったためこちらで再度質問させていただきます。

多次元ベクトル値を持つデータの集合中、全ての次元においてそれ以上の値が存在するデータを省きたいと思います。
具体的には次のような感じです。

class C {
int v[10];
}

C obj[10000];

for (i=0; i<10000; i++) for (j=i+1; j<10000; j++) {
//
if (
obj[i].v[0] >= obj[j].v[0] &&
obj[i].v[1] >= obj[j].v[1] &&
...
obj[i].v[9] >= obj[j].v[9]
)
{
// obj[j]を削除
}

のようなことをやりたいです(実際にはデータはstd::listで管理しています)。
全てのインスタンス同士で比較するとO(N^2)の計算量となっています。
計算量を減らすうまい方法はないでしょうか?

「そんなものはない」等の回答はご遠慮願います。

(参考)
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1148208666

※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。
ログインして回答する

みんなの回答

この質問へのコメント

この質問への反応(ブックマークコメント)

質問の情報

登録日時
2010-11-15 16:00:37
終了日時
2010-11-22 09:54:50
回答条件
1人1回まで

この質問のカテゴリ

この質問に含まれるキーワード

インスタンス183アルゴリズム292ベクトル102Yahoo1691Class541

人気の質問

メニュー

PC版