[アルゴリズム] バケットソート(Go言語編)

sheet-1392023_1280
LINEで送る
Share on GREE
Share on LinkedIn

Go言語は、使っていると奥の深さを非常に感じます。
どの言語でもそうですが、慣れないうちは、基本の関数や書き方で面倒くさい書き方をするんですが、
ググると便利に効率的に書いている人のソースコードに出会います。
これにより、自分にもその書き方が馴染むとそれがスキルアップに繋がるという習得方法です。
どの言語でも、裏技のような書き方があり、それを人に教わると「勉強になった」と思い、自分で見つけるとガッツポーズしたくなるぐらいうれしくなり、
本やWEBで見つけると、「スキルアップした」と、どれも向上心を感じさせるいい行為なので、プログラマーのスキルアップってこうした喜びの
繰り返しなのかと改めて感じさせられました。

ソース

実行

解説

バケットソートの方式は、言語によって書き方が大きく変わってしまっています。
Go言語は、配列のkey判定がまだ自分のスキルで上手にできなかったので、他の言語では一括で行っていた処理を下記のようなフローに変更しています。

1. max値の取得
2. 同一数値の個数保持
3. ソートした後のデータ作成

本心としては他の言語と同じフローにしたかったな・・・

Golangの配列定義

任意要素数の定義の3番目は、10という要素数を引数にするとエラーが出たので、1番目のmakeを使って定義しなければいけません。(変数で定義する場合)

配列に要素の追加

前後の要素追加は非常に簡単に行なえます。
とりあえず破壊的処理という事で便利に使えます。

関連リンク

kiwipedia

マージソート記事

解説
Javascript
PHP
Python
Shell
AWK
C言語
Go言語

アルゴリズム過去記事

http://wordpress.ideacompo.com/?cat=562&tag=Algorithm

Leave a Reply

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です


*