基本的な文法はほとんど、
我々は、システムのラインとデータ構造とアルゴリズムを見てする必要があります。
私は右の本を見つけられませんでした、
githubの上のリファレンスプロジェクト:
https://github.com/floyernick/Data-Structures-and-Algorithms/
何の主な機能はありませんgolang、実行することができない、注意してください
テストするとき、あなたは、外出先のテストを使用することができます。
BinarySearch.go
パッケージBinarySearch //二分法查找 FUNC BinarySearch(配列[] INT、数INT)INT { minIndex:= 0 maxIndex:= LEN(アレイ) - 1 minIndexための<= maxIndex { midIndex:= INT((maxIndex + minIndex)/ 2) midItem:=配列[midIndex] もし数== midItem { 戻りmidIndex } もしmidItem <数{ minIndex = midIndex + 1 }そうならmidItem>数{ maxIndex = midIndex - 1 } } 戻り-1 }
BinarySearch_test.go
パッケージBinarySearch インポート( "FMT" "数学/ランド" "テスト" "時間" ) //先排序 FUNC SortArray(配列[] INT){ itemIndex、itemValue用:=レンジアレイ{ !itemIndex = 0 &&アレイの[itemIndex -1]> itemValue { アレイ[itemIndex] =配列[itemIndex-1] itemIndex - = 1 } アレイ[itemIndex] = itemValue } } TestBinarySearch(T * testing.T){FUNC ランダム:= rand.New(rand.NewSource (time.Now()UnixNano())) fmt.Println(ランダム) 配列:=([] INT、random.Intn(100作る)) fmt.Println(アレイ)の iについて:=範囲配列{ アレイ[I ] =ランダム。INT(100) } FMT。println(アレイ) SortArray(アレイ) fmt.Println(アレイ) =レンジ配列:_、値は{ 結果:= BinarySearch(アレイ、値) 結果場合== -1 { t.Fail() } } }