FrontPage

アルゴリズム

アルゴリズムとは、情報処理の明確な処理手順。(命題(処理)を細分し、要素的なものに分解する。)

概念

  • 停止性
    処理手順は、必ず終着点が存在しなければならない。~
    (どんな場合も、必ず終着点に辿りつける)
  • アルゴリズム+データ構造 = プログラム
    • データ構造
      1. キュー構造
      2. スタック構造
      3. ハッシュテーブル
      4. 木構造 ・・・etc

基本構造

  • 逐次処理
    順番に処理する。 
    algorithm1.PNG
  • 反復処理
    処理を繰り返し行う。
    algorithm2.PNG
  • 条件判定
    処理を行ったり、行わなかったりする。
    algorithm3.PNG
  • (部品処理)
    逐次処理、反復処理、条件判定の組み合わせを一つの処理にする。
    algorithm4.PNG

手順

命題:数値をソートせよ。ソート対象配列:5,7,8,2,1,4,9
  1. 並び替える手順を基本構造で定義出来るまで細分化する。
    1. ソートするには、どこから始めるかを決めることが必要。
      逐次実行
    2. ソートするには、データの大小比較が必要。
      条件判定
    3. ソートするには、大小比較後、データを入れ替えることが必要
      逐次実行
    4. ソートするには、大小比較は1つの要素を全要素に対して行うことが必要。
      反復処理
    5. ソートするには、ⅳの処理を全要素に対して行うことが必要。
      反復処理
  2. フローチャートの作成
  3. プログラムの作成(バブルソート)
    1. import java.io.IOException;
    2. import java.util.Arrays;
    3.  
    4. public class BubbleSort {
    5.     public static void main(String args[]) throws IOException {
    6.         int[] numArray = {5,7,8,2,1,4,9}
    7.         int count = 0;// iの処理
    8.         // 配列の数だけ処理を繰り返す ⅴの処理
    9.         for (int i = 0; i < numArray.length - 1; i++) {
    10.           // 配列の数だけ処理を繰り返す。
    11.             // ただし、1度ソートしたものは対象外とする。 ⅳの処理
    12.             for (int j = numArray.length - 1; j > i; j--) {
    13.                 // 大小比較 ⅱ
    14.                 if (numArray[j - 1] > numArray[j]) {
    15.                     // 入れ替え処理 ⅲ
    16.                     int tmpNum = numArray[j - 1];
    17.                     numArray[j - 1] = numArray[j];
    18.                     numArray[j] = tmpNum;
    19.                     count++;
    20.                 }
    21.             }
    22.         }
    23.     }
    24. }

添付ファイル: filealgorithm4.PNG 183件 [詳細] filealgorithm3.PNG 184件 [詳細] filealgorithm2.PNG 185件 [詳細] filealgorithm1.PNG 193件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2018-09-04 (火) 22:36:47 (321d)