テックキャンプ無料カウンセリング
資料請求はこちら

アルゴリズムとは?プログラミングに必要な理由とわかりやすい例を紹介

更新: 2020.11.14

>>No1エンジニア養成プログラム テックキャンプ

初めてのIT転職で読むべき!お役立ちebook3点セット

プログラミングに関連する用語として知っているけれど、アルゴリズムが何かよくわからないという人も多いと思います。

そこでこの記事では、アルゴリズムが何なのか、プログラミングを勉強する上でどのように役立つのかについて解説します。

これを読めば、アルゴリズムの意味だけでなく、プログラミングを勉強する上でどれだけ重要なのかが理解できます。

アルゴリズムとは?

アルゴリズムは、プログラミングにおける考え方の1つです。

まずは、アルゴリズムの意味について解説します。

アルゴリズムは「問題解決の手順ややり方」

アルゴリズムは、簡単に言うと「問題解決の手順ややり方」

ある問題が存在し、それを解決するための具体的な手順・やり方を示したものがアルゴリズムです。

どんな人でもアルゴリズムの通りに行動すれば同じ結果が得られ、また、問題が解決できれば良いので、アルゴリズムは複数考えられることがポイント。

手順・やり方が異なっていたとしても、問題を解決するものであれば全てアルゴリズムと呼べます。

アルゴリズムは昔から存在した

アルゴリズムという言葉は最近になって認知されてきましたが、概念自体は昔から存在していました。

将棋を例に挙げると、王将をとるためにどのような手をさせばよいかを考えることが該当します。

ほかにも、魔方陣や数独もどのように数字を配置すればルールを満たせるかを考えることも同様です。

このように、ある問題を解決するために手段を考えるという意味で、アルゴリズムは古くから存在していたのです。

アルゴリズムの語源は?

アルゴリズムという言葉の語源は、「演算方法」という意味の英単語「algorithm」です。

「algorithm」は、9世紀の科学者フワーリズミーが著した『アルゴリトミ』に由来しています。

『アルゴリトミ』は、四則演算・代数方程式などの数学に関する理論が記されており、彼自身も科学者として数学・天文学などの研究で大きな功績を残しています。

プログラミングのためにアルゴリズムを学ぶ意味は?

アルゴリズムは、プログラミングをする上で必要不可欠の概念です。

ここでは、プログラミングの勉強においてアルゴリズムを学ぶ意味について解説します。

効率のよいプログラムの構築に役立つ

アルゴリズムを学べば、効率的なプログラムを構築できます。プログラムを構築する際は、実行速度とメモリ消費のことを考えなければなりません。

実行速度が遅かったり、メモリを大量消費したりするプログラムは、正しく動作できても実用するには難があります。

そのため、正しく動作してかつ高速でメモリを節約するようなプログラムが求められるのです。アルゴリズムは、そのようなプログラムを構築する上で役立ちます。

論理的思考が身に付く

アルゴリズムを学べば、論理的思考を身につけられます。論理的思考とは、物事を矛盾・飛躍がないように筋道立てて考えること。

プログラミングにおいては、プログラムを構築する際にいかに効率的に問題解決を行なうかを考える上で、論理的思考力が求められます。

アルゴリズムの学習は、そのような論理的思考力を身に付けることにつながるのです。

アルゴリズムの学習に最適なタイミングはプログラミング中級者程度

アルゴリズムを学ぶ意味を理解した人は、どのようなタイミングで勉強をすればよいか気になると思います。

アルゴリズムを勉強するのは、プログラミングがある程度できるスキルを身に付けたタイミングがよいでしょう。

なぜなら、プログラミングを勉強して間もない頃は、プログラムに慣れるために時間がかかるので負担が大きくなります。

また、アルゴリズム自体も初心者にはとっつきにくい内容が多いからです。

そのため、プログラミングにある程度慣れた中級者程度で勉強するのがベストなタイミングと言えます。

無料キャリア相談!本日も予約受付中

テックキャンプは、未経験からのエンジニア・WEBデザイナー転職を実現するスクール。教室でもオンラインでも学習が可能です。

テックキャンプには「徹底したサポート」と「やりきらせる学習環境」があるので、転職成功率は98%以上!実際に受講した人の体験談はこちら

今後のキャリアに迷っているなら、一度無料のキャリア相談(カウンセリング)で相談してみませんか?無理な勧誘は一切致しませんので、お気軽にどうぞ。

わかりやすいアルゴリズムの例

ここでは、実際に例を挙げてアルゴリズムを解説します。

料理を例にアルゴリズムを考える

野菜の切り方の1つである半月切りを例に、アルゴリズムについて説明します。

半月切りは主に2パターンが存在します。

  1. 輪切りをしてから1枚ずつ半分に切るパターン。
  2. 最初に半分に切ってから輪切りしていくパターン。

どちらのパターンに従っても最終的には半月切りになります。

しかし、両者の間には切る回数に差が出ます。

試しに、トマトを半月切りで10枚に切ってみた場合の切る回数を考えてみましょう。

その結果、1つ目のパターンの場合は合計9回、2つ目のパターンは合計5回で達成できることが分かります。

このように、切り方のパターンを考えれば、切る回数を節約できます。

Googleの検索アルゴリズム

Googleの検索エンジンも5つのアルゴリズムに従って動作しています。

1つ目は、検索意図の把握。

Googleでは、ユーザーが探そうとしている情報を把握するために、検索キーワードの分析を行います。

その過程で、類義語は適宜置き換えられたり、急上昇ワードが入力されたときは鮮度の高い情報を優先的に引っ張り出したりします。

2つ目は、検索意図に関連するウェブページの探索。

ユーザーの検索意図を満たすために、検索キーワードが多く含まれているウェブページを探します。

また、検索キーワードがいくつも出現するウェブページを探すだけでなく、画像・動画なども分析して総合的に評価します。

3つ目は、ウェブページの品質評価。

関連するウェブページが複数見つかった場合、検索キーワードの出現回数・コンテンツの鮮度などを評価します。

また、コンテンツの信頼性・権威性についても評価することで、スパムサイトが検索上位に入ることがないようにしています。

4つ目は、ユーザビリティの評価。

ブラウザ・デバイスごとに表示を最適化してくれるか、回線速度が遅いユーザーでもスムーズに読み込んでくれるかなど、ユーザーにとっての使いやすさが担保されているかを評価します。

5つ目は、ユーザー関連情報の考慮。

Googleは、ユーザーから提供される位置情報・検索履歴を分析して、そのユーザーに最適な検索結果を返すようにしています。

例えば、千葉に住んでいる人が「ラーメン おすすめ」と検索した場合は、千葉に店を構えるラーメン屋の情報が優先的に表示されるという具合です。

以上のアルゴリズムによって、Googleの検索エンジンはただ検索するのではなく、ユーザーに最適な検索結果を返すように動作しています。

アルゴリズムたいそうはどこが「アルゴリズム」?

NHKの番組『ピタゴラスイッチ』のコーナーの1つであるアルゴリズムたいそう。

アルゴリズムがテーマとなっているが、どのへんがアルゴリズムなのか気になる人もいると思います。

実際の歌詞と動作からひも解いていきましょう。

「手を横に、あら危ない、頭を下げればぶつかりません」の節では、一方が手を横に振り、もう一方がしゃがむという動作をしています。

単体で見れば意味のない動作をしているように見えます。

しかし、全体で見ると迫りくる手をしゃがむことで回避しているように見えるのです。

ある一人の動作が他の人に影響を与えている様が、アルゴリズムの考えに通じていることから、アルゴリズムたいそうと呼ばれています。

プログラミングにおけるアルゴリズムの例

プログラミングにおけるアルゴリズムでは、探索アルゴリズムや整列アルゴリズムが挙げられます。

探索アルゴリズムは、取得したいデータをリストの中から探索するためのアルゴリズムで、線形探索・二分探索などが考案されています。

整列アルゴリズムは、ランダムに並べられたデータを昇順・降順に並べ替えるためのアルゴリズムで、選択ソート・バブルソートなどが代表的です。

各アルゴリズムには、計算量という指標を用いて、アルゴリズムの効率の良さを表します。

プログラミングで使われるアルゴリズムには、これだけではありません。この他にも多くの種類があるので、時間をかけて理解することが大切です。

オンライン学習もOK!テックキャンプで未経験からプロのエンジニアへ

「エンジニアに興味があるけれど、未経験だから不安……」と、悩んでいませんか?
テックキャンプ初心者専用の教育プログラム。受講生の99%がプログラミング未経験です。それでも転職成功率は98%以上!

オンラインでも通学スタイルでも、エンジニア転職をやり切れる秘訣は「徹底したサポート体制にあります。実際にテックキャンプを受講した人の体験談はこちら

迷っているなら、まずは無料カウンセリングで不安に思うことを相談してみませんか。どんな小さなお悩みもプロのカウンセラーが丁寧にお答えします。

無料カウンセリングの予約はこちら

この記事を書いた人

あなたの理想のキャリアに合わせた、テックキャンプの3つのサービス

Advertisement