2011-07-08 16 views
0

私のような単語のリストがあります:単語リストのすべての固有の組み合わせを生成するにはどうすればよいですか?

List={"word1", "word2", "word3", ....} 

どのように私はこれらの言葉の すべてのユニークな組み合わせの「2単語の長さ」のリストを生成することができますか?例えば

リストには3つしか 言葉が含まれている上記の場合、出力は次のように次のようになります。また、

word1 word2 
word1 word3 
word2 word1 
word2 word4 
word3 word1 
word3 word2 

"word1 word2""word2 word1"として 同じではないことに注意してください。

私はこのような最も簡単な解決策を知っている:

for i=1 to N 
    for j=1 to N 
    if(i!=j) then 
     print List[i]+" "+List[j] 

をしかし、これはO(nは)の複雑さを持っています。だから、 とは何ですか?最悪の場合は最少のアルゴリズム 同じを達成するための複雑さ。

+1

宿題?試験に座っていますか? –

+2

出力自体がn²の場合、どのようにO(n²)より優れた処理を期待しますか? –

答えて

8

アルゴリズムの出力には、O(n^2)個の要素が含まれています。すべての出力要素に注意を払う必要があるため、O(n^2)時間の複雑さよりも優れた達成を望むことはできません。

関連する問題