algorithm の変更点 luckey!!!! - memo random

#author("2018-09-04T22:34:27+09:00","ldap:pandora"," pandora")
#author("2018-09-04T22:36:47+09:00","ldap:pandora"," pandora")
[[FrontPage]]
#nofollow
#norelated
* ''アルゴリズム'' [#of3f38bf]
 アルゴリズムとは、情報処理の明確な処理手順。(命題(処理)を細分し、要素的なものに分解する。)
#contents

* 概念 [#z78fa2ce]
-停止性
 処理が終わらないことがないように、必ず終着点が存在しなければならない。
 処理手順は、必ず終着点が存在しなければならない。~
 (どんな場合も、必ず終着点に辿りつける)
-アルゴリズム+データ構造 = プログラム
-- データ構造
+++ キュー構造
+++ スタック構造
+++ ハッシュテーブル
+++ 木構造
・・・etc
* 基本構造 [#r3c3bc1d]
- 逐次処理
 順番に処理する。 
&ref(algorithm1.PNG);
- 反復処理
 処理を繰り返し行う。
&ref(algorithm2.PNG);
- 条件判定
 処理を行ったり、行わなかったりする。
&ref(algorithm3.PNG);
- (部品処理)
 逐次処理、反復処理、条件判定の組み合わせを一つの処理にする。
&ref(algorithm4.PNG);
* 手順 [#k3b28260]
 命題:数値をソートせよ。ソート対象配列:5,7,8,2,1,4,9
+ 並び替える手順を基本構造で定義出来るまで細分化する。
++ ソートするには、どこから始めるかを決めることが必要。~
逐次実行
++ ソートするには、データの大小比較が必要。~
条件判定
++ ソートするには、大小比較後、データを入れ替えることが必要~
逐次実行
++ ソートするには、大小比較は1つの要素を全要素に対して行うことが必要。~
反復処理
++ ソートするには、ⅳの処理を全要素に対して行うことが必要。~
反復処理
+ フローチャートの作成
+ プログラムの作成(バブルソート)
#highlighter(java,number){{
import java.io.IOException;
import java.util.Arrays;

public class BubbleSort {
    public static void main(String args[]) throws IOException {
        int[] numArray = {5,7,8,2,1,4,9}
        int count = 0;// iの処理
        // 配列の数だけ処理を繰り返す ⅴの処理
        for (int i = 0; i < numArray.length - 1; i++) {
          // 配列の数だけ処理を繰り返す。
            // ただし、1度ソートしたものは対象外とする。 ⅳの処理
            for (int j = numArray.length - 1; j > i; j--) {
                // 大小比較 ⅱ
                if (numArray[j - 1] > numArray[j]) {
                    // 入れ替え処理 ⅲ
                    int tmpNum = numArray[j - 1];
                    numArray[j - 1] = numArray[j];
                    numArray[j] = tmpNum;
                    count++;
                }
            }
        }
    }
}
}}

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS