1.slice反轉,偏移
func reverse(s int) }
一種將slice元素迴圈向左旋轉n個元素的方法是三次呼叫reverse反轉函式,第一次是反轉開頭 的n個元素,然後是反轉剩下的元素,最後是反轉整個slice的元素。(如果是向右迴圈旋轉, 則將第三個函式呼叫移到第乙個呼叫位置就可以了。)
a := [...]int//rotate a left by two positions.
reverse(a[:2
])reverse(a[
2:])
reverse(a[:])
//output [2 3 4 5 0 1]
type tree structfunc sort(values
int)
0], root)
}int, node *tree) int
return
values
}func add(node *tree, val int) *tree
if node.value >val
else
return
node
}
func fib(x int) intreturn fib(x-1) + fib(x-2
)}
func fib2(x int) intreturn
c}
如果我們有乙個指向結構體的指標p
,那麼可以通過(*p).x
來訪問其欄位x
。不過這麼寫太囉嗦了,所以語言也允許我們使用隱式間接引用,直接寫p.x
就可以。
計算兩個整數值的的最大公約數(gcd)(greatest common divisor的縮寫,歐幾里德的gcd是最早的非平凡演算法):
func gcd(x, y int) intreturn
x}
Golang程式設計基礎 準備篇
golang是google發布的開源程式語言,這裡就不對其進行過多介紹,網上有很多文章已經把它的前身後世都介紹的很清楚了,有興趣的可以去查閱,前幾天剛開始接觸golang的開發,今天抽空在開發之餘對其做一些整理,今天要說的就是golang的基本資料型別。單純的介紹資料型別,沒有任何意義,無非就是幾幾...
Golang洗牌演算法
兩種洗牌演算法 1 fisher yates 2 knuth type handle struct fisher yates正向 func h handle shuffle fisheryates forward cards uint32,r rand.rand fisher yates反向 fun...
golang演算法 氣泡排序演算法
氣泡排序演算法 1.分析問題 將前n個數字分別進行比較,最大的移動到了最後 下一次,將前n 1個數字分別進行比較,最大的移動到了倒數第二位 依此類推。2.設計演算法 1 第一次排序 索引0至len 陣列 1左右元素進行比較,最大的數排在最後 2 第二次排序 索引0至len 陣列 2左右元素進行比較,...