ソートアルゴリズムの効率を選択

ソートアルゴリズムは、選択ソートよりも多くの問題を解決することができます。だから、同じ問題を解決することができる複数のアルゴリズムが存在する場合に、どのように我々は選ぶのですか?

判定アルゴリズムでは、考慮した基準が異なっています。

例えば、単純なアルゴリズムは、人間のために理解しやすいまた、簡単な手順を記述することができ、およびアルゴリズムを実行しているプロセスにあまりにも大きな領域のリソースを費やす必要はありません、それは小さなコンピュータメモリに非常に適しています。
しかし、一般的には、私達の注意のほとんどは、アルゴリズムの実行時間はある、このプロセスの出力結果への入力データからの時間がかかります。

全体のランキングアルゴリズムのソートに使用
するアルゴリズムの効率が低いが、ここでは以下のソートアルゴリズムを見てどのような影響を与えるのかを理解するために私たちの注文を。
①からなる一連のn数(ないカラム数と、以前に生成された反復)を生成し
、その出力の昇順に列の数が他のステップに戻るかどう発生は②①①

このアルゴリズムは、「完全なランキングアルゴリズム」と呼ばれています。

全ランキングアルゴリズムリスト、すべての配置方法は、その入力に関わらず、あなたは正しい結果を得ることができます。


だから、結果の前に長く待つ必要がありますか?運がよければ、すぐに正しく整列、結果はすぐに出てくる表示されます。私たちが望んだとしてしかし、現実には、多くの場合ではありません。

最後は正しく整列見えるようになるまで、ある最悪の状況では、コンピュータは、すべての可能な順列を確認する必要があります。
n個のデジタル配置がn個の異なる方法を持っていた(n = n(nは- ! !1)(N - 2)... 3・2・1)。

私たちが見て、N = 50時に今、それは今どのようなものです。

①50!= 50・49・48 ... 3・2・1
②50・49・48 ... 3・2・1> 50・49・48 ... 13・12・11
③50・49・48 ... 13・12・11> 10 40

①式、50で!デジタル製品の50までの数字1です。計算を容易にするために、結果は、我々は、式10を用いてn乗の形に変換②③程度です。

これは50未満10以下の式②削除番号の右の部分、!。

式③の生成物は、40桁程度であるが、左の数を超える10より10、大きく、従って右40

その後、我々は10 40全50桁の数字を表すのおおよその配置を計算します。
高性能コンピュータは1000000000000 1秒(= 10チェックすることができると仮定し12である)の列数を、トップをチェック10 40列の倍の数は10になります40 ÷10 12である = 1028秒。1年31 536 000秒と10未満8秒。このように10 28 > 10の秒20である年。
ビッグバン宇宙の始まりから、それさえも10未満、億13.7およそ年間を経験してきた11年。言い換えれば、ちょうど50桁が、それは彼らが何の答えを持っていない宇宙の年齢よりも109倍の時間がかかる場合でも、完全な置換アルゴリズムを使用することがソートされています。

 

ソートするソートアルゴリズムの選択使用して
、前述の選択ソートアルゴリズムを使用して、ケースをそれを、どのようにそれだろうか?
まず、最初のラウンドでの最小数を見つけるために、我々は、左から右へ長い問い合わせのn桁ができるように数値に列の数を確認する必要があります。次の第二ラウンドでは、nが必要- 1数桁-最小値を見つけるために1つの番号は、それが必要、nです。
このステップは、n番目の車輪に行われる場合、以下のように、必要数は、です。
+ N-(N- 1)+(N-2)。3 + ... + N-2 + 1 =(N + 1)/ 2≦N- 2
、N- = 50ときN- 2 = 2500。1秒1000000000000(= 10を確認することができると仮定12れるの桁)、次いで÷10 2500 12は = 0.000 000 002結果。5秒程度、ランキングアルゴリズムの全体の効率よりもはるかに高いです。

おすすめ

転載: www.cnblogs.com/hlaotong/p/12661562.html