擬似コードとアルゴリズムの違いは?


17

技術的には、これら2つの単語に違いはありますか、それとも同じ意味で使用できますか?どちらも、多かれ少なかれ、問題を解決するために続く論理的な一連の手順を説明しています。じゃない?それで、なぜ同じことを話すのであれば、なぜそのような単語を2つ実際に使用するのでしょうか?

または、同義語でない場合、それらを区別するのは何ですか?どのようなコンテキストで、擬似コード対ワードアルゴリズムを使用することになっていますか?


4
アルゴリズムはクイックソートです。擬似コードは「サンドイッチにして、それができたら持って来てください」です。
ニール

別の質問に対するこの回答をご覧ください。そこで、アルゴリズムと擬似コードの関係を説明しました。
ゴランジョヴィック

3
ショートバージョン:「擬似コードはアルゴリズムを表現する方法の一つである」
ゴランJovic

3
@NeilまたはSUDOでサンドイッチにするxkcd.com/149
StuperUser

回答:


37

アルゴリズムのウィキペディアの定義:

数学およびコンピューターサイエンスでは、アルゴリズムは、関数を計算するための明確に定義された命令の有限リストとして表される効果的な方法です。アルゴリズムは、計算、データ処理、および自動推論に使用されます。

アルゴリズムは、純粋な数式から複雑なグラフまで、さまざまな方法で記述できます。

擬似コードは、構文の詳細に入らずにアルゴリズムを実装する方法を説明します。

だから、彼らは本当に同義ではありません。


8

このアルゴリズムは、コードを書く方法についてのアイデアです。疑似コードは、そのアイデアを伝えるために必要なテキストです。


いいね!短くてまっすぐ。しかし、私は「書かれたテキスト」よりも「書かれたテキスト」と言います。どう思いますか?
ルチアーノ

6

「擬似コード」は「アルゴリズム」であり、「英語」は「ノックノックジョーク」です。

アルゴリズムは、擬似コードまたは実際のコードで表現される可能性のあるものの正式な構造です。

ノックノックジョークは、英語または他の言語で表現される可能性のあるものの正式な構造です。(他の文化はノックノックのジョークをしますか?私も知りません。)


そうは思いません。少なくとも、そのノックノックゲームについてポルトガル語で似たようなものはありません。ですから、スペイン語やイタリア語のような他のロマンス言語にも存在しないと思います。フランス語は何世紀も前に英国の島々で英語と長い関係を持っていたので、フランス語は含めません。ルーマニア語などのような他のロマンス語も知りません。
ルチアーノ

3

クイックソートアルゴリズムは1つだけです。これは、プラトンの純粋なアイデアの世界に存在するようなものです。さまざまな擬似コード記述があります。擬似コードは、おおよそコンピューターコードのように見えるテキストとして定義し、経験豊富なプログラマーが創造的な飛躍をすることなく実際のコンピューターコードに翻訳できると定義すると思います。

いいえ、用語を同じ意味で使用することはありません。


2

アルゴリズムは、コンピューターの問題を解決するために使用される体系的な論理的アプローチであり、擬似コードは、後でプログラミング言語(プログラム)に翻訳される可能性のある平易な英語のステートメントです。


2

アルゴリズムはセマンティックであり、擬似コードは問題の解決に関するコミュニケーションの単なる構文です。つまり、アルゴリズムは実際の問題解決方法であり、疑似コードはその方法を表現する方法にすぎません。

アルゴリズムは、Cプログラミング言語、疑似コード、または英語など、何らかの方法(構文)で表現する場合、同じ意味(意味)を持ちます。


1

私が理解している擬似コードは、アルゴリズムと実装されたプログラムの間の仲介者です。アルゴリズムに基づいて擬似コードを作成できます。これには、実行可能な転送可能な手順が含まれています。

一方、アルゴリズムは全体的なロジックを意味します。問題を解決するために連続した手順で。図で表現されている場合、フローチャートと呼ばれます。

これを、クライアント側のビジネスオブジェクト開発者が要件に基づいて擬似コードを記述するビジネスソフトウェア開発の一般的な用語である擬似コードと呼ぶ場合があります。これはプログラマー/開発者に与えられて実装されます。

システムプログラミング、検索、ソートなど、基本的に複雑なロジックを実装する必要がある場合など、プログラミング用語でよく使用されるアルゴリズム。


1

擬似コードはアルゴリズムよりもコードに近いように見えますが、実際には、擬似コードは形式的ではなく、より高度な記述です。たとえば、チェスをしているコンピューターを次のような擬似コードとして記述することができます。

  • 最初のピースをその場所に配置する
  • ショーボード
  • ゲームオーバーではありませんが
    • 移動し、ボードを表示する
    • ユーザーに移動を促す
    • ユーザーを移動させる

はい、これは擬似コードです。良い出発点として役立ちますが、多くの詳細を詳しく説明しています。実装の難しさやバリエーションは考慮されていませんが、最大の利点は、すべての詳細を解決することなく状況全体を概念化できることです。

次のようにレベルを追加して修正できます。

  • 最初のピースをその場所に配置する
  • ショーボード
  • ボードはチェックメイトまたはドローではありませんが
    • 白の法的動きのリストを作成する
    • いくつかの基準に従って最適なものを選択する
    • その動きをさせ、結果のボードを計算します
    • チェックメイトまたはドローが発生したかどうかを確認します
    • ディスプレイボード
    • 黒人の法的動きのリストを作成する
    • 入力のための法的移動をユーザーに促す
    • その動きをさせ、結果のボードを計算します
    • チェックメイトまたはドローが発生したかどうかを確認します
    • ディスプレイボード

次のように、「黒人の合法的な動きのリストを作成する」などの主要なステップごとに擬似コードを作成できます。

  • 黒い部分ごとに
    • 特定の場所のピースタイプ
      • 次の可能な場所のリストを作成する

擬似コードの威力は、状況全体を一度に表示し、詳細を1つずつ解決できることにあります。弱点は、どのステップも明確な単純なステップではないことです。

通常、アルゴリズムはこれらのステップの1つを選択し、シンボリック言語のさまざまなデータ構造を詳細化して、ステップの目標を効率的に達成できるようにします。

たとえばget_legal_moves(board, color)、アルゴリズム設計に値する:

get_legal_moves(board, color):
    for i,j in board_dimensions
        if piece_at i,j is of color
            if piece type is KNIGHT
                add the following to the next moves list:
                    location i+1 j+2, i-1 j+2... etc
            if piece type is rook
                add locations:....

アルゴリズムを使用するには、非常に正確でなければならないことがわかります。

これにより、いくつかのことが保証されます。何よりもまず目標がエラーなしで満たされることです。手順は非常に詳細で機械化された方法で実行可能であり、手順を並べ替えてタスクを完了する効率(速度)を向上させることができるほど小さい手順です。


これは、すべてのステップで擬似コードで表されるトップダウンアルゴリズム分解のようです。
ネイサンタギー

0

私の経験から、プロセス、モジュール、またはサブシステムに適用されるビジネスルールを表現する方法として、機能コード(プロセスを所有する人)によって常に擬似コードが記述されています。

アルゴリズムは、可能な限り特定のタスクを解決するための論理ステートメントの決定的なセットです。


0

アルゴリズムは、数学用語で表されるものです。これには、分析、基本的な実装(疑似コードで表現されている場合でも)、複雑さの考慮事項(ベスト、平均、最悪の分析など)が含まれます。

擬似コードは、人間が読めるプログラムの表現です。それでさえ、アルゴリズムを記述するために使用できます。


-2

擬似とは、シングル&コードが命令であることを意味します。ここで、擬似コードとは、コンピュータープログラミング言語を簡単に理解するために使用されるステートメントを意味します。プログラミングコードの分析に役立ちます。。ここで、アルゴリズムは問題を解決するための命令の有限論理ステップです。


1
これは、以前の10個の回答で作成され説明されたポイントに対して実質的なものを提供していないようです
-gnat
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.