[アルゴリズム] 挿入ソートの実装(Go言語編)

Pocket
LINEで送る
GREE にシェア
LinkedIn にシェア

今更ながらGo言語に少しミスが起きやすい箇所を見つけました。
それは、他の言語との記述について、明らかな違いによって、コーディング中に何度も似たようなミスをした事で実感しました。
1つ目は、変数の定義と代入の際の「hoge := **」という書き方で「:(コロン)」のつけ忘れを都度やってしまう点。
2つ目は、関数の定義で「func hoge(arr []int , num int) []int{…}」という風に、型を重視して記述する点。
3つ目は、C言語でも同じですが、一度定義した変数をその後使わずに放置するとその場でエラーになってしまうという点です。
これらは、Golang特有なものもあるし、プログラム言語としては許せるレベルでもあるんですが、とにかくこの辺のミスをしないように慣れるところから始めないといけないという事か・・・
そんなわけで「挿入ソート」のGo編を書きます。

ソースコード

実行

プログラム内に配列を定義しているので、汎用性が薄いプログラムなので、ARGV取り込みによりソートできるようにしなければいけませんね。
または、別のファイルを読み込んでやるとか・・・

解説

空の配列定義

num := []int{};
あまり問題なく定義できたので、そんなに問題ではありませんね。

配列の追加処理

num = append(num , ***);
これも他言語で言うところのpushと同じなのでさほど問題ないんですが、appendされたデータを同じ配列に入れるのを忘れるとエラーになるので、PHPやJSとは少し扱いが違うので要注意!!

文字列連結

fmt.Println関数で表示する内容で文字列や数値などを連結して表示したい場合は、「,(カンマ)」区切りでつなげていくとそのまま表示されます。

関数

Go言語の関数は下記の構文で定義できます。
func 関数名(受取値1 型 , 受取値2 型…) 戻り値の型 { 処理 }
受取値は、1つでもいいんですが、カンマ区切りでいくつでも受け渡しできます。
戻り値は無ければ、型の記述は不要です。

関連リンク

挿入ソート

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

アルゴリズム過去記事

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

Leave a Reply

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