アルゴリズムとは?プログラミングとの関係や記述方法

この記事は2分で読めます

自分用メモ

言葉の定義やプログラミングとの関係、
記述方法などを確認する

アルゴリズムとは?


コンピュータによる問題解決の手順のこと
あくまで「コンピュータにとっての解決手順」であることが条件

コンピュータにして欲しいことを達成させるための一連の手順と言える

「正しいロジックとは何か、どういう基準なのか」
これを記述するものとも言える。

物事のやり方や解き方を工夫して、手間をかけずに
結果を得る方法のこと。「最適な解き方で解こう」という感じ

また、アルゴリズムを考えるとは、以下の行動を指す
「どのように命令を与えれば、コンピュータである問題を解決できるか」

※参考:クリエイティブ、プログラミング用語まとめ

アルゴリズムの種類


アルゴリズムには様々な種類がある
「小さい順に並べ替えるアルゴリズム」だけでも数十個の種類がある
わかりやすいが遅いアルゴリズムや、素早いが複雑なアルゴリズムなど

例えば、ディープラーニングや機械学習は、
「コンピュータが学習するためのアルゴリズム」
→コンピュータが「猫の画像」を見て、猫が映っていることを判断できるようになる


ソートアルゴリズム(整列アルゴリズム)

バラバラの数字を小さいor大きい順に並べ替える
自分の探したい数字を見つけ出すアルゴリズム

バブルソートが具体例、隣り合う2つの要素の
値を比較して条件に応じた交換を行う

ソートアルゴリズムの中では最も遅いが記述が簡単、
大きい数字がどんどん右側に移動していく
「大きい泡」がどんどん上がっていく=バブルソート

サーチアルゴリズム(探索アルゴリズム)

ランダムな数値から指定した値を探し出すアルゴリズム

リニアサーチ(線形探索)が具体例→一直線に探索していく
自分の提示した数値と同じなのかをチェックする

目的の数値が見つかるまで
配列のすべての要素と直接比較する
簡単だが処理量は多くなりがち

サーチアルゴリズムには他にも
「2分探索=バイナリサーチ」というものがある

なお、サーチとは探索のこと
特定の制約条件を満たす物を見つけ出す行動

問題を入力して考えられる
いくつもの解を評価した後、解を返すアルゴリズムのこと
故に、サーチアルゴリズムは探索アルゴリズムとも呼ばれる

アルゴリズムとプログラミングの関係


アルゴリズムを考え、思い付くことがプログラミングの核となる
アルゴリズムを考えることがプログラミングにおける「設計」の全て

「プログラミングの5段階」の2番目である「設計」とは、
「アルゴリズムを考えること」と言い換えられる

アルゴリズムを改良することをプログラミング的に言えば、
「計算量0の最適化」と表現している

アルゴリズムが思い付けば、ほぼその問題は解決したようなもの
アルゴリズムを考える=実装(コーディング)ではないので、
必ずしもプログラミング言語で書かなくても良い

「実装」は「プログラミングの5段階」の3つ目の「コーディング」のこと
コーディングとは、思いついたアルゴリズムをプログラムへ落とし込む作業

プログラムは全て「アルゴリズムの実装」という形で記述される

※参考:プログラミングの基礎知識。言語や仕組み、開発について

アルゴリズムを表現する方法とは?


プログラミング以外にも、
「擬似コード」や「フローチャート」がある

処理とは、プログラムを上から下へと実行していくこと、
これだけでは「単純なこと」しか出来ない
そこで制御の流れをコントロールする
2つの概念が必要となる:条件分岐、繰り返し(ループ)

擬似コード
日本語などを織り交ぜた架空の言語で
アルゴリズムを記述すること
(プログラミング言語で実装するのではない)

フローチャート
図式的な表現でアルゴリズムを表現する方法
(言語として表現するのではない)
※参考:フローチャートとは?条件分岐や繰り返しなど

  • このエントリーをはてなブックマークに追加
  • LINEで送る

関連記事

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。