見出し画像

TIL[Today I Learned] 1/6

今日から、ちょくちょくいわゆるTILをnoteでやって行こうかなと思います。

TILとは"Today I Learned"の略で、今日学んだことを簡単にまとめたメモみたいなものです。GitHubなどで一時期流行っていたのですが、GitHubに馴染みのない人もnoteだったら簡単に見れるかなと思って、こっちにしました。


今日は久しぶりにソートアルゴリズムを学び直しました。

ソートアルゴリズムとは、どうやったら数字の大小を効率よく並び替えられるかという考え方のことです。

バブルソートとかヒープソートとかいろんな方法があります。


プログラミングでは、パソコンの処理が重くならないようにいかに効率的なプログラムをかけるかということが大事になってきます。

なのでめっちゃ大事なんだけど、あんまり今まで意識してこなくて、忘れちゃってた💦

今日、↓みたいな問題をCで解く機会があって、あれ〜なんだったけってなったので改めて復習したという感じです。

配列を一つだけ使って、以下の問題を解きなさい。
{10, 35, 55, 3, 66, 72, 49, 91, 25, 50}を含む配列を用意し、配列の要素を小さい順に並び替えなさい。


復習の際に使用したサイトはこちら↓

いろいろなソートアルゴリズム

ヒープソート


ついでにアルゴリズムって辞書的な定義はどんなものなんだろうと思って調べてみたよ

"アルゴリズム(英: algorithm)とは、「計算可能」なことを計算する、形式的な(formalな)手続きのこと、あるいはそれを形式的に表現したもの(ここでいう「計算」とは、英語で calculation よりも複雑な場合を含むような computation を含んでいる。"                                アルゴリズム , wikipedia

アルゴリズムって形式的で必ず答えが出るでないがわかるもの?らしくて、プログラムだけによらず、形式化された計算手順のことをいうらしい。

世界最古のアルゴリズムは「ユーグリッド互除法」なんだって
二つの整数の最大公約数を求めるやつ!割った余りでまた割っていくやつね


結局さっきの問題に使うアルゴリズムはバブルソートもしくは、選択ソートっていうものでした。

アルゴリズムまた忘れないようにしたいなぁ


TIL、こんな感じでゆるゆると書いていきます。
興味があったら私が勉強したこと、リンクから見てみてね

ではではまたね♡


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