バブルソート編の今回は最近だんだん使う人が増えている気がするGo言語です。
Go言語はコンパイル言語なんだが、インタプリタ的な使い方もできる非常に開発者の気持ちが分かっている言語として個人的に好んでいます。
Google社の作った言語という事で、スピードが高速であるという点や、学習コストも非常に少なく済む言語として、人気があるようです。
WEBエンジニアを志す人は是非、覚えておいて損はないと思いますよ。
Go言語の基本的な説明は過去記事を御覧ください。
Go言語にTry 速攻学習#1
ソースコード
package main
import "fmt"
func main(){
numbers := []int{10,2,12,7,16,8,13}
flg := 0
while := 0
for ; while<10; {
flg=0
for i := 0; i < len(numbers)-1; i++ {
num1 := numbers[i]
num2 := numbers[ i+1 ]
if num1 > num2 {
numbers[i] = num2
numbers[i+1] = num1
flg++
}
}
if flg==0 {break}
while++
}
for i := range numbers {
fmt.Println(numbers[i])
}
}
解説
Go言語をまだ実践で使ったことが無かったので、いくつかのサイトのサンプルプログラム見ながら作ってみたんだが、まあまあ独自路線を行っている言語という事がよくわかった。
1. while文
Golangはwhile文が無いらしいのでfor文を使って無限ループを作ることで、対応してみた。
ただし、内部にbreak処理を入れないとただのゴミプログラムになってしまうので、要注意!!
2. 配列の要素数
len(numbers)
参考サイト
逆引きGolang
golangチートシート
結果
$ go run bubbleSort.go
2
7
8
10
12
13
16
コンパイル無し実行をしてみました。
まとめ
importライブラリは「fmt」のみで対応できたので、さほど難しいプログラムとも言えないのだが、貴重な第一歩となった事は間違いない。
関数化せずに、内部に配列を直接記述したので、汎用性はゼロです。
この辺は現時点ではご勘弁願いたい。
またそのうちリライトするという事で・・・
アルゴリズム過去記事
いろいろなプログラム言語でアルゴリズム学習
0 件のコメント:
コメントを投稿