アルゴリズム内の擬似コード構文フォーマット-アルゴリズム実装表現利器


@[toc]擬似コードpseudo-codeは、モジュール構造図を記述するための非公式の自然言語のような言語である.異なるプログラミング言語に熟練しているプログラマーは、他のプログラミング言語の作成機能を理解するのは難しいが、偽コードは明確で、簡単で、可読性がよく、アルゴリズムの実行過程全体の構造を自然言語に近い形式で記述することができる.擬似コードはソフトウェアエンジニアリングの問題に関心を持たず、データ抽象、モジュール性、エラー処理の問題を無視することが多い.
著者紹介:よく見かける、アリババの高級技術専門家.「全スタック深さ」の微信公衆番号に注目し、「全スタックスペクトル」に返信する.
HDフルスタック知識スペクトル圧縮パッケージをダウンロードします.フロントエンド開発、バックグラウンド開発、機械学習、クラウドコンピューティングなど、スタック全体の知識の共有を深く提供します.転載する必要がある場合は、著者:よくあることと
出典:「全桟深さ」微信公衆番号.
1、操作タイプ
操作タイプ
アイコン

わりあて
←または:=c ← 2πr , c:= 2πr
比較
=, ≠, ≤, ≥
さんじゅつ
+, −, ×,/, mod
上界/下界
⌊, ⌋, ⌈, ⌉ a ← ⌊b⌋ + ⌈c⌉
ろんり
and, or
合計
∑ ∏
$$h ← ∑_{a∈A}1/a $$
x and y、xが成立する時やっとyに対して値を求めて、さもなくばxは短絡して、もうyに対してx or yを求めなくて、xが成立しない時やっとyに対して値を求めて、さもなくばxは短絡して、もうyに対して値を求めません
2、文法規則
1、各命令が1行を占める(else ifを除く)2、命令後に何の記号も付けない3、beginの代わりにブロック構造、分岐構造をインデントで表す..end、if-then-else文
3、構成部分
3.1アルゴリズム名
プロセス:Procedure、一連の操作を実行し、結果を返す必要はなく、データ関数を返さない:Function、一連の操作を実行し、結果を返す必要があり、データを返す必要がある
Procedure ([])
Function ([])

3.2指令シーケンス
Beginまたは「{」を開始とし、Endまたは「}」を終了とする.
Begin
        ;
End


{
        ;
}

3.3入出力
入力:input、パラメータ値またはオブジェクトのポインタが出力されます:outputまたはreturn、return文は複数の会議を返し、プロシージャの呼び出し点に戻ります.エラー:error、呼び出しに異常が発生し、呼び出しプロセスはこのエラーを処理し、現在のプログラムはどのように処理するかを説明する必要はありません.
3.4分岐選択
//   
If Then
{
        ;
}

//   
If Then
{
        1;
}
Else
{
        2;
}

3.5賦課
x:=x+1;x
3.6サイクル
  • カウント式ループ反復でループカウンタを増加する場合、to反復でループカウンタを減少する場合、downtoステップ用by
  • For   :=   To   
    {
            ;
    }
    

    サイクル数:最終値-初期値+1
  • 条件式サイクル
  • While (  ) do
    {
            ;
    }

    3.7配列
    A[j]は配列Aのj番目の要素を示す.シンボル「...」は、配列内の値の範囲を示すために使用されます.例えば、A[1...j]は、要素A[1],A[2],...,A[j]を含むサブ配列を表す.A[0:n]は配列の下付き文字が0からnまで2次元配列であることを表す.A[0:m,0:n]
    3.8アルゴリズムの終了
    キーワードEndの後ろにアルゴリズム名を付けて、アルゴリズムの最後の文を表します.
    End DFS

    3.9コメント
    //行コメント表示
    3.10オブジェクト
    複合データは、通常、A.b.cのような属性からなるオブジェクトとして組織され、 . または . . で表される.配列またはオブジェクトの変数は、常に配列またはオブジェクトのポインタと見なされます.ポインタがオブジェクトを指さない場合はNIL4、疑似コードの例
     //     
     procedure Bubble(n:integer);
       var temp,i,j:integer;
       change:boolean;
       begin
          for i:=1 to n-1 do
          begin
            change:=false;
            for j:=n-1 downto i do
              if a[j]>a[j+1] then
              begin
                change:=true;
                temp:=a[j]; a[j]:=a[j+1]; a[j+1]:=temp;
              end;
              if not(change) then exit;
          end;
       end;
    
    //     
    procedure insertsort(n:integer);
      var i,j:integer;
      begin
        for i:=2 to n do
        begin
          a[0]:=a[i];
          j:=i-1;
          while a[j]>a[0] do
          begin
            a[j+1]:=a[j];
            j:=j-1;
          end;
          a[j+1]:=a[0];
        end;
      end;
    
    /* this is a pseudocode sample */
    
    a := 1
    b ← a + 2
    c :=[100]
    
    if a ≥ 2 then
        goto Label_Print
    else
        for i := 0 to 100
            a := a + i
    
        do j := (a+b*i)/100
            c[j] = a+b*i
        until j>100
    
        return
    
    Label_Print:
        while b ≠ 3 and a = 4 do
            call log(b,a)
        end
    
    exit
    

    著者紹介:よく見かける、アリババの高級技術専門家.「全スタック深さ」の微信公衆番号に注目し、「全スタックスペクトル」に返信して、ハイビジョン全スタック知識スペクトル圧縮パッケージをダウンロードします.フロントエンド開発、バックグラウンド開発、機械学習、クラウドコンピューティングなど、スタック全体の知識の共有を深く提供します.転載する必要がある場合は、著者:よくあることと出所:「全桟深さ」の微信公衆番号を明記してください.
    転載する必要がある場合は、著者:よくあることと出所:「全桟深さ」の微信公衆番号を明記してください.私の微信stacker 1024を加えて、あなたを『全スタック開発アーキテクチャ』グループに連れて行って一緒に交流を学びます!以下は公衆番号「全桟深さ」の最新記事です.
    [推荐]史上最全スタック技术知识导図[ダウンロード可能][推荐]硬核ブラウザ原理[推荐]面接テンセント、アリ、トップ、データ构造とアルゴリズムは彼に頼っている