アルゴリズムは、有限時間で結果を生成する一連の明確に定義されたステップです。
明確に定義されたステップ:正確に定義された、実行または計算できることです。ステップを読むだけで、あなたがしなければならないこととその方法を知っています。具体的には、既知のプログラミング言語で作成し、プログラムフラグメントがステップと正確に一致するようにします。
シーケンス:ステップは指定された順序で実行されます。ステップは、データに応じて複数回実行される場合があり(ループ)、データに応じてまったく実行されない場合があります(ifステートメント)。並列アルゴリズムはステップに部分的な順序のみを課すため、ここでは単純化しすぎています。シーケンスよりも部分的に順序付けられたセットとして説明する方が正しいでしょうが、私は言葉を少しシンプルにしたかったのです。また、部分的に順序付けられたセットを完全な順序で埋め込むことも簡単にできます。
結果:終了状態または値。事前に予測可能である必要はありませんが、何らかの条件を満たす特定の目的である必要があります。つまり、オペレーティングシステムはアルゴリズムではありませんが、それらの多くを使用します。
有限:アルゴリズムは、少なくとも十分な時間実行できるマシン上で、いつか停止することが保証されています。予測可能な時間内に停止することは必ずしも保証されていません。また、既存のマシンで太陽が膨張して赤くなる前に停止することは保証されていません。また、これはオペレーティングシステムがアルゴリズムではなく、理想的には永久に実行されることを意味します。「手順」という言葉は、いつか停止することが確実な場合にアルゴリズムとなる何かを説明するのに使用されるのを見てきました。(未知の時間で停止するアルゴリズムを使用することは可能です。例えば、Goldbachの予想が非構成的証明で数学的に間違っていることが証明されたと仮定します。 。偶数を単純にテストするアルゴリズムは、最終的に終了しますが、
アルゴリズムは意図的に抽象化されたものであるため、「宇宙の熱死の前にこれを実行することは物理的に可能ですか?」などの質問は考慮しません。彼らは答えるのが難しいだろう。コンピューターの操作に関連する場合、プログラミング言語で簡単に実装できます。