見出し画像

Java訓練#28(アルゴリズム)

今日の授業

今日はアルゴリズムについて学びました。
それについて解説します。

アルゴリズムについて

アルゴリズムとは、簡単に言うと問題や課題を解決する為のアイディアや考え方のことをいいます。
そして、いいアルゴリズムとは、
・効率的
・処理が高速
・再利用しやすい
・誰が見ても分かりやすい
というものがあります。しかし、プログラムを作る人によってコードの記述の仕方が変わってしまうので、どのアルゴリズムを使うかは検討が必要になります。

アルゴリズムの記述方法というのがあって、それは「  フローチャート  」という図を使います。
フローチャートとは、○や△、□の様な図形を使いプログラムの流れを分かりやすくする方法です。
これを使って他の人が見てもプログラムの流れが分かるようにします。

代表的なアルゴリズム

代表的なアルゴリズムは以下の4つになります。
・整列
・検索
・数値計算
・文字列検索
そして今回は整列のアルゴリズムについて解説します。
整列のアルゴリズムとは、配列の中身を整理する様なイメージです。
配列の中身(数字)を昇順(小→大)にしたり、降順(大→小)にしたりします。そして、整理するやり方にも以下の様なやり方があります。

・クイックソート(データを大小に分解します、配列に軸を決めて、そこから小さい数字を左側に配置して、軸より大きい数字を右側に配置する方法)

・バブルソート(配列の最後から先頭に向かって隣り合う2つの数字の大小を比べて入れ替える方法)

・選択ソート(配列の中から最小の数字を見つけ出して先頭に持ってくる方法)

・挿入ソート(配列の指定した場所に数字を入れていく方法)
以上の4つの方法があります。

これはどれも配列を使うので 二重for文で配列の中身を回して、if文で数字を入れ替えます。
今回はバブルソートの昇順の方法を解説をします。


配列の要素数を変数に入れとくと後に楽に記述ができます。

int x = 配列名.length;

1回目の for文では一番最後の要素を指定して、左側の要素と比べます。配列の部屋番号と配列数を -1して合わせます。

for(int n = 0; n < x -1; n++)

2つ目の for文では、1つ目の for文の左側にある要素を指定します。

for(int z = x -1; z > n; z—-)

if文で入れ替え処理をします

if(配列名[z -1] > 配列名[n]){.  //もし左側の要素が右側の要素より大きかったら入れ替えます
    int box = 配列名[n];      //上書きされない様に箱に避難させておきます
    配列名[n] = 配列名[z -1];  //左側の要素を右側に移動させます
    配列名[z -1] = box;      //空いた左側の要素に避難させてた数字を入れます

このプログラムで左側から右側にかけて数字が大きくなるはずです。

詳しくはこちらをご覧ください

+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*

公共職業訓練を受講する為に必要な事を下の記事で書いてます。
良かったらご覧下さい↓↓↓

最後まで読んで頂きありがとうございました。

少しでも勉強になった、役に立ったと思ったら「 サポート」 で貴方のお気持ちを頂けると嬉しいです。
今後の励みにもなります。是非よろしくお願いします。

この記事が気に入ったらサポートをしてみませんか?