ベクトルのセットがあり、このセットの最小要素を見つけるには、Java でアルゴリズムを記述する必要があります。問題は、比類のない要素があることです。例 minset{(1,4,6),(3,2,5),(2,3,4),(5,4,6)} = {(1,4,6),(3,2, 5),(2,3,4)}. 最小要素のセット「minset」の場合、元のセットのすべてのベクトルは「minset」にあるか、すべてのコンポーネントの新しいセットのベクトルよりも >= です。例: minset{(2,3,4),(2,3,5)} = {(2,3,4)}. これにはすでにアルゴリズムがありますが、より複雑な計算で実行できると思います。私のアルゴリズムは1つの要素を取り、それを最小としてマークし、次に他の要素を取り、それらを比較し、比較できない場合は両方を最小としてマークし、2番目が小さい場合はそれのみを最小としてマークします... このアルゴリズムを最適化するためにマージソートまたはヒープソートを使用することは可能ですか? すべての応答に感謝します。
質問する
196 次
3 に答える
-1
記事http://repository.cmu.edu/cgi/viewcontent.cgi?article=2758&context=compsciで私の問題の解決策を見つけました。同様の問題であるベクトルのセットの最大要素を見つけるためのアルゴリズムです。私の最初の直感的なアルゴリズムよりもはるかに優れた計算の複雑さで動作します。
于 2013-05-18T15:00:48.003 に答える
-1
擬似コード:
foreach inputVector in vectors
foreach minVector in minSet
if (all components of inputVector <= components of minVector
delete minVector
elseif (all components of inputVector >= components of minVector)
skip to next inputVector
if inputVector made it through the entire minSet, then add it to minSet
于 2013-05-15T15:07:00.650 に答える