アルゴリズムの設計と解析:はじめに

●アルゴリズムと手続き

アルゴリズムは、意味、問題の解決するために、 1の方法またはプロセスを
アルゴリズムは、いくつかの命令の有限の配列プロパティを満たしている:
(1)入力:YES量は、アルゴリズムへの入力として外部から供給されます。
(2)出力:少なくとも1つのアルゴリズムは、出力量として生成します。
(3)不確実性:各命令は、アルゴリズムから構成されている透明な明白なの。
(4)制限:アルゴリズムは、各命令の実行頻度をれる限定各命令の実行に時間がされている限定します。

プログラムがあり、アルゴリズム、プログラミング言語の使用して、特定の実装をプログラムができて満足していないなど、アルゴリズムの性質上、オペレーティング・システム

●ステップ設計アルゴリズム

問題を理解する:アルゴリズムを設計する前に、我々は完全に提示問題を理解することである最初の事をする必要があります。同時に、必要性に対処するために厳密に定義されたアルゴリズムのインスタンス範囲は非常に重要です。適切なアルゴリズムは、ほとんどの場合に対処することができるはずはないだけ、とすることができるはず正しく扱うすべての法的な入力を。
コンピュータ機器のパフォーマンスの理解:今日使用されるほとんどのアルゴリズムは、まだ上で動作するノイマン型コンピュータ。その主なランダム・アクセス・マシン・ビジョンは次のとおりです。一つ実行しているコマンドの1、毎回呼ばれる操作ステップ、シーケンシャルなアルゴリズムを一部の新しいコンピュータは、同時に、すなわち、複数の操作を行うことができ、並列コンピューティング
正確かつ選択するおおよその間:ソリューションは正確と呼ばれる正確なアルゴリズムを近似解と呼ばれる、近似アルゴリズムあなたはいくつかの問題への正確な溶液または原因得ることができない固有の複雑さを許容できないほど遅くなることがあり、この問題を解決することが知られ、正確なアルゴリズムを使用して、。
適切なデータ構造の決定アルゴリズムデータ構造、コンピュータプログラミング重要な基盤をアルゴリズム+データ構造=プログラム

●インデックス解析アルゴリズム

:任意のアルゴリズムやソリューションについては、次の2つの質問があります
(1)問題が解決することができますか?
(2)問題を解決するために、大丈夫?

効率性はないアルゴリズム解析の唯一の目的のために。アルゴリズムの目標はあるもののスピードが、このアルゴリズムは、最初にしなければなりません修正し、意味のある存在を。設計アルゴリズム、または複数のアルゴリズムをするときの比較時間を、彼らの分析する必要がある正しさ時間効率をアルゴリズムのこの種切開操作のそれらの精度と時間効率を得るためには、アルゴリズム解析2つのアルゴリズムの場合は時間効率、我々は、使用したアルゴリズムを実装しなければならないスペースを比較することにより、より少ない使用してスペースが優れています。
:このように、解析アルゴリズムは、次の3つの態様に分けることができる
(1)正当
時間効率の分析(2)
時間的特性の解析(3)

=アルゴリズムの複雑アルゴリズムのコンピュータリソースが必要
T(N)の時間計算量をSの空間複雑度(N)
ここで、Nはある問題のサイズ(入力サイズ)。

アルゴリズムの時間計算量は以下の分析有する
(1)最悪の場合における時間複雑
|のTmaxは(N)=最大{サイズ(I)= N T(I)}
(2)最良ケースの時間計算量を抵抗
Tminの(N)= minの{T(I)|サイズ(I)= N}
(3)平均的ケースにおける時間複雑
Tavg(N)=ここに画像を挿入説明
I問題のサイズであるNの例として、P(I)たとえば私が表示されている確率を

T(N)→∞などのための場合は N→∞;
いる(T(N) - T( N))/ T(N)→0、N→∞として、
呼び出さT(n)がT(n)が漸近的行動、のアルゴリズム漸近複雑
数学的には、T(n)はT(n)がある漸近発現は T(n)は、一次アイテムが下位の用語を省略している左それ(n)がTより単純

符号の漸近解析:以下の説明では、すべてのnに対して、F(N)≥0 、G(N)≥0。
(1)O漸近シンボルを結合した
O(G(N))= | {F(N) :0≤F(N)≤CG(N)、及び全てのn≥N0、N0があるようにするための通常の数cの存在}
( 2)漸近下限表記Ω・
Ω・(G(N))= {F(N)|、及び全てのnの通常番号Cの存在≥N0 N0よう存在すること:0≤CG(N-)≤F(N)}
。(3)非結合締め付けマークO
O(G(N))= {F(N)|任意の通常の番号c> 0、正の数のN0> 0このような全てn≥N0を有するため、その:0≤F(N)< CG(n)は}
F(N)/ G(Nに相当する N→∞のように、)→0。
(4)非タイト下限表記ωは
、ω(G(N))= {F(N)|任意の通常の番号c> 0に対して、正の数とN0> 0は、≥すべてのn有しN0ことがある:0≤CG(nが)<F(N)}
Fと同等である(N)/ G(N )→∞としてN→∞。
F(N)∈ω(G (N))がG(N)∈O(F(N))と等価である
(5)直ちに漸近境界シンボル|θ
θ(G(N))= {F(N)|通常番号C1、C2、及び存在N0 N0≥たすべてのそのようなN:C1G(N)≤F (N)≤C2G(N)}

アルゴリズムの時間の関数のために、F(n)は、もしF(N) G(n)はある同じ大きさ(同じ順序)、利用可能なF(N) = O(G(N))の形で表さ。彼は式は前記アルゴリズムの時間複雑としても知られる、アルゴリズムの時間計算量Oである(G (N)) 。
一般的に使用される時間複雑性は、以下の関係を有する:
Oを(1)≤O(log2n)≤O(N)≤O(N * log2n)≤O(N 2)≤O(N 3)≤...≤O(N- K)≤O(2 N-)<O(N-!)

●分類アルゴリズム

アルゴリズムは:大きく3つのカテゴリーに分け
(1)限定されるもので、決定的アルゴリズム
時間の限られた期間のためのそのようなアルゴリズムを終了します彼らは、割り当てられたタスクを実行するのに長い時間がかかるかもしれないが、一定の期間内に終了します。このようなアルゴリズムは、多くの場合、結果は入力値に依存します
(2)制限され、非決定論的アルゴリズム
限られた時間内のこのようなアルゴリズムは終了しますしかし、与えられた数値、およびアルゴリズムの結果の(又は一部)のための一意または決定されません
(3)無限のアルゴリズムが
あるため、これらを指すない終了条件が定義されていないが存在する、または条件を定義した入力データによって満たされていない動作を終了することなく、アルゴリズムは。典型的には、無限のアルゴリズムは、終了条件が定義されているかを決定するための故障によるものです。

クラシックアルゴリズム
1。網羅的な探索
2。反復アルゴリズム
3。再帰アルゴリズム
4。再帰アルゴリズム
5。分割統治アルゴリズム
6。貪欲アルゴリズム
7。動的なプログラミングアルゴリズム
8。バックトラック
9。分枝限定アルゴリズム

公開された39元の記事 ウォンの賞賛4 ビュー2052

おすすめ

転載: blog.csdn.net/weixin_44712386/article/details/105008543