這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。Go 1.9 新特性 Type Alias 詳解北京時間 2017.08.25,Go1.9 正式版發布了。Go1.9 經曆了 2 個beta,好幾個月,終於定了,發布了正式版本。Go 1.9 包含了很多改變,比如類型別名 Type Alias,安全並發 Map,並行編譯等,都是很大的改變,今天這篇文章主要介紹類型別名 Type Alias。原文地址:http://www.flysnow.org/2017/08/26/go-1-9-
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。封裝成函數://選出第k小元素,k為1~len(s)func SelectKthMin(s []int, k int) int { k-- lo, hi := 0, len(s)-1 for { j := partition(s, lo, hi) if j < k { lo = j + 1 } else if j > k {
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。封裝成函數://二分法尋找//切片s是升序的//k為待尋找的整數//如果查到有就返回對應角標,//沒有就返回-1func BinarySearch(s []int, k int) int { lo, hi := 0, len(s)-1 for lo <= hi { m := (lo + hi) >> 1 if s[m] < k { lo = m
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。為簡單起見,索引值均為整型。定義介面(tree.go):type Tree interface { Put(k, v int) //新增或修改 Get(k int) int //查詢 Delete(k int) //刪除 Size() int //樹的大小 Min() int //最小鍵 DeleteMin()
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。數學求解原理請看:求兩圓相交的交點的方法實現代碼:package mainimport ( "math")//代表一個點,包含橫縱座標type Point struct { X, Y float64}//代表一個圓,包含橫縱座標及半徑type Circle struct { Point R float64}//建立圓對象func NewCircle(x, y, r float64)
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。封裝成函數:func ShellSort(a []int) { n := len(a) h := 1 for h < n/3 { //尋找合適的間隔h h = 3*h + 1 } for h >= 1 { //將數組變為間隔h個元素有序 for i := h; i < n; i++ { //間隔h插入排序