(火)色々ありますおはようございます。本日の当番、プログラマのY.Tです。今回は「答えは1つではない」というお話です。同じ結果を出すプログラムでも色々な方法があるのです。挙げるだけでも、バブルソート、シェーカーソート、クイックソート、バケットソート、etc色々な方法があります。私の経験を交えて軽く説明を。バブルソートとは、値を1つずつ比較して条件を満たしていれば交換する。誰もがまず一番最初に思いつく方法ですね。実際、私も最初に作ったのはこれでした。これは、確実ですが処理時間が遅いです。1つずつ比較するのですから当然です。これは駄目だということで次に試したのが、バケットソートです。バケツソート、分布数えソート、などともいいます。バケットソートとは、データが取り得るすべての値のバケットを用意しておいて、対応するバケットに詰めていき、詰め終わったら順番にバケットから値を取り出していく、という方法です。バケットソートはバブルソートに比べると相当早いですが、欠点があります。データの取り得る値分のバケットが必要となるのです。)という3つの数字をソートしようとすると最大値の100000000。4*100000000バイト、約400メガバイトのメモリが必要となるのです。3つをソートするだけで、これではやってられませんね。私の場合、最初は自分で思いついて何も考えずに試したのですが、そのPCのメモリが256メガの貧相なPCでして・・・どうなったかはご想像にお任せします。その欠点を解決したものがラディックスソートです。・・・とまぁ、こんな感じにただ単にソートプログラムといってもたくさんある訳です。投げっぱなしですが、恐ろしく長くなるのでこのあたりで。本当に軽くしか説明していないし、かなり分かりにくいと思いますのでもっと詳しく知りたい方は検索してみてください。一口にソートプログラムといってもたくさんありましたよね?これがプログラムの面白い所で、今回言いたかった事です。答えは1つではないんです。「でも結局は皆、一番速いプログラムを使うんじゃないの?」と、思われると思います。確かに、より良いものを求めるなら答えは一つになってしまう事は多々あります。人それぞれの方法があるから考えるのが楽しいし、分からなかったことを理解した時や、自分で新しい方法を思いついた時はめちゃくちゃ嬉しいです。思い出せなかった人の名前を思い出した時の様にスッとしますよ。技術交流の業(2019.03.07)福袋争奪戦デビュー(2019.01.31)温泉旅行(2019.01.24)ゲーセンの近況(2018.11.29)健康的にプログラミングを続けるためのちょっとした習慣(2018.10.18)コメントコメントを書く名前:メールアドレス:(ウェブ上には掲載しません)アドレス(URL):この情報を登録するコメントは記事投稿者が公開するまで表示されません。