Voss のプログラムの定義は、アルゴリズムとデータ構造の 2 つの部分に分かれています。アルゴリズムは、コンピュータの実行プロセスを中心に反映します。データ構造は、大量のデータ間の構造的な関係です。適切なデータ構造を設計すると、処理されるオブジェクトのアルゴリズムを大幅に簡素化できます。
このチュートリアルの動作環境: Windows 7 システム、Dell G3 コンピューター。
PASCAL 言語の創始者である N.Witrh は、プログラムの簡潔かつ正確な定義を与えました:
アルゴリズム + データ構造 = プログラム (アルゴリズム + データ構造 = プログラム)
アルゴリズムはコンピュータの実行プロセスを中心に反映しており、データ構造は大量のデータ間の構造的な関係であり、処理対象に応じてデータ構造を設計することでアルゴリズムを大幅に簡素化できます。アルゴリズムとデータ構造は、プログラミングの 2 つの重要な側面です。初期のプログラミング言語はデータ構造の記述が非常に苦手で、アルゴリズムのタスクが複雑化していましたが、言語の発展とともにデータ記述能力が徐々に向上しており、これも言語発展の重要な兆候です。
アルゴリズムとは、問題解決ソリューションの正確かつ完全な記述を指します。問題を解決するための一連の明確な指示です。アルゴリズムは、問題を解決するための戦略的メカニズムを記述する体系的な方法を表します。つまり、一定の標準化されたインプットに対して、限られた時間内で必要なアウトプットを得ることが可能です。アルゴリズムに欠陥があるか、問題に対して不適切な場合、そのアルゴリズムを実行しても問題は解決されません。アルゴリズムが異なると、同じタスクを完了するために使用する時間、空間、効率が異なる場合があります。アルゴリズムの品質は、空間の複雑さと時間の複雑さによって測定できます。
アルゴリズム内の命令は、実行時に初期状態と (おそらく空の) 初期入力から開始し、限定的で明確に定義された一連の状態を経て、最終的に出力を生成して停止できる計算を記述します。最終的な状態で。ある状態から別の状態への遷移は、必ずしも決定的であるとは限りません。ランダム化アルゴリズムを含む一部のアルゴリズムには、ランダムな入力が含まれます。
形式アルゴリズムの概念は、部分的にはヒルベルトの決定問題を解決する試みから生まれ、その後の効率的な計算可能性または効率的な方法を定義する試みの中で具体化されました。これらの試みには、それぞれ 1930 年、1934 年、1935 年にクルト・ゲーデル、ジャック・ヘルブランド、スティーブン・コール・クレーンによって提案された再帰関数、1936 年にアロンゾ・チャーチによって提案されたラムダ計算、1936 年にエミール・レオン・ポストのフォーミュレーション 1、そして 1936 年にアラン・チューリングのチューリング・マシンが含まれていました。 1937年。現在でも、直感的なアイデアを正式なアルゴリズムとして定義するのが難しい場合がよくあります。
データ構造(データ構造)とは、構造的な特徴を持つデータ要素の集まりであり、データの論理構造とデータの物理構造とそれらの関係を検討し、この構造を定義したものです。対応するアルゴリズムを使用し、これらの操作後に取得された新しい構造が元の構造タイプを維持していることを確認します。つまり、データ構造とは、相互に 1 つ以上の特定の関係を持つデータ要素の集合、つまり「構造」を持つデータ要素の集合です。 「構造」とはデータ要素間の関係を指し、論理構造と記憶構造に分けられます。
データの論理構造と物理構造は、データ構造の 2 つの密接に関連した側面であり、同じ論理構造が異なるストレージ構造に対応することがあります。アルゴリズムの設計はデータの論理構造に依存し、アルゴリズムの実装は指定されたストレージ構造に依存します。
データ構造の研究内容は、複雑なソフトウェアシステムを構築するための基礎となるものであり、その中核となる技術は分解と抽象化です。分解によりデータを 3 つのレベルに分割でき、抽象化によりデータ要素の特定の内容が破棄され、論理構造が取得されます。同様に、操作は、処理要件を関数に分解し、抽象化によって実装の詳細を破棄することによって定義されます。上記の 2 つの側面を組み合わせると、問題をデータ構造に変換できます。これは、具体 (つまり、具体的な問題) から抽象 (つまり、データ構造) へのプロセスです。次に、実装の詳細を考慮して、ストレージ構造と実装操作をさらに取得し、設計タスクを完了します。これは、抽象 (つまり、データ構造) から具体 (つまり、特定の実装) へのプロセスです。
コンピュータ関連の知識について詳しくは、FAQ 列をご覧ください。
以上がVoss のプログラムの定義はいくつかの部分に分かれています。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。