アルゴリズムとは?難しそうだけど徹底解説!

プログラミング

アルゴリズムとは簡単にいうと「問題を解くための手順」です。

大抵の人が、自分の生活には関係ないと思われるかもしれませんが、意外と身近なものです。

カーナビで道順を出したり、Google検索したりといろんなことが、アルゴリズムによって支えられています。

そこでアルゴリズムを学ぶとは、意味があるのかという点について解説します。

スポンサーリンク

アルゴリズムとは?

アルゴリズムとは、問題を解決するための明確な手順のセットです。

計算機がその手順に沿って、実行することによって問題を解決することができます。

では、「カレーを作りたい」という問題がある時は、どうすれば良いでしょうか?

作ったことがない人ならば、インターネットで調べてみるでしょう。

そうすると

  1. 具材を切る
  2. フライパンで焼く

と書いてあります。

この手順が「カレーを作りたい」という問題に対するアルゴリズムです。

簡単な気がしてきませんか?

アルゴリズムの研究は、コンピュータにおける効率性の向上に非常に関わっています。

とにかく大量のデータがインターネット上にある中で、なぜ私たちが検索して、知りたい情報を出してくれるのでしょうか?

これはGoogleが「知りたい情報をとどける」という問題を解くアルゴリズムを研究しているからです。

スポンサーリンク

良いアルゴリズムとは?

アルゴリズムを評価するポイントには、効率性、正確性、汎用性などあります。

今回は効率性について、解説します。

1から100で好きな数字を友達に選んでもらいました。

彼はYES/NOでしか答えてくれません。

どのように質問すれば効率が良いでしょうか?

何回も質問できる気力があれば、「1?」「2?」「3?」…と聞いていけば良いでしょう。

しかし彼が選んだ数字によっては、最大100回の質問をしなければなりません。

このように愚直に候補を一つずつ調べていく方法を「全探索」と言います。

全探索をすれば、問題を解くことが可能ですが、もっと数字の候補が多かったら大変です。

では効率の良い質問の仕方とは?

最初に、「50以上?」と聞くのです。

YESならば50~100、NOならば1~49となります。

先ほどの「1?」と聞いた時には、候補がまだ99個残っていますが、今回は50個しか残っていません。

同様に、候補を半分に絞るために「25以上?」「75以上?」と聞けば2回の質問で25個に絞ることができます。

半分に絞る質問を繰り返せば、最大でも7回の質問で当てることができるのです。

このように候補を半分に絞っていく方法を「二分探索」と言います。

非常に効率的な方法と言われています。

このように少ない質問で問題を解決できるということは、コンピュータに同じ処理をやらせる際に

  • 処理する回数を減らせる
  • 計算する時間を減らせる

というメリットがあります。

スポンサーリンク

アルゴリズムを学ぶ意味とは?

アルゴリズムを学ぶことは、問題解決における論理的思考の基礎を学ぶことです。

アルゴリズムを理解することで、プログラムを効率的に設計し、データの処理や分析、問題解決に必要なスキルを身につけることができます。

また、アルゴリズムは、コンピューター科学において最も重要な概念の一つです。

ビジネス、科学、医療など、あらゆる分野で必要とされます。

まとめ

今回は簡単な例でアルゴリズムの違いを紹介しました。

僕は効率性という点に惹かれて、アルゴリズムの勉強に進みました。

プログラミングには興味なくても、様々な場面で「効率性」は求められます。

プログラミング学習が注目されているのも、効率性、問題解決能力のある人材が求められているからなのでしょう。

参考文献はこちら

では次回。

コメント

タイトルとURLをコピーしました