對數(shù)組切片進行排序操作;判斷是否已正序排序;使用二分法從切片中查找一個元素(要先正序排序)。
創(chuàng)新互聯(lián)是一家專注于成都網(wǎng)站設計、成都做網(wǎng)站與策劃設計,黔西南州網(wǎng)站建設哪家好?創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設10年,網(wǎng)設計領(lǐng)域的專業(yè)建站公司;建站業(yè)務涵蓋:黔西南州等地區(qū)。黔西南州做網(wǎng)站價格咨詢:13518219792對基本類型的切片排序
[]float64,[]int,[]string的排序(遞增),判斷可以直接使用以下六個方法
func Float64s(a []float64)
func Ints(a []int)
func Strings(a []string)
func Float64sAreSorted(a []float64) bool
func IntsAreSorted(a []int) bool
func StringsAreSorted(a []string) bool
以上6個方法都是間接通過排序接口"Interface"進行排序的
通過實現(xiàn)Interface接口對自定義類型的數(shù)組切片進行排序
需實現(xiàn)接口的三個方法
Len() int //長度
Less(i, j int) bool //比較
Swap(i, j int) //交換
滿足接口的集合就可以使用以下四個方法
func Sort(data Interface) //排序 不保證相等的元素排序前后的順序
func IsSorted(data Interface) bool //判斷是否正序
func Stable(data Interface) //排序 保證相等的元素排序前后的順序
func Reverse(data Interface) Interface //(排序前)修改排序接口的比大小方法
基本類型的排序就是通過如下三個實現(xiàn)了Interface接口的對象來實現(xiàn)的
type Float64Slice //type Float64Slice []float64
func (p Float64Slice) Len() int
func (p Float64Slice) Less(i, j int) bool
func (p Float64Slice) Search(x float64) int
func (p Float64Slice) Sort()
func (p Float64Slice) Swap(i, j int)
type IntSlice
func (p IntSlice) Len() int
func (p IntSlice) Less(i, j int) bool
func (p IntSlice) Search(x int) int
func (p IntSlice) Sort()
func (p IntSlice) Swap(i, j int)
type StringSlice
func (p StringSlice) Len() int
func (p StringSlice) Less(i, j int) bool
func (p StringSlice) Search(x string) int
func (p StringSlice) Sort()
func (p StringSlice) Swap(i, j int)
上面幾個Search方法(二分法,要先遞增排序才能用)通過下面三個方法實現(xiàn)
func SearchFloat64s(a []float64, x float64) int
func SearchInts(a []int, x int) int
func SearchStrings(a []string, x string) int
而這三個方法調(diào)用了Search方法
func Search(n int, f func(int) bool) int //二分法
Go1.8新增的排序方法
func Slice(slice interface{}, less func(i, j int) bool) //排序 不保證相同的元素的次序
func SliceStable(slice interface{}, less func(i, j int) bool)//排序 保證排序后相同的元素的先后順序不變
func SliceIsSorted(slice interface{}, less func(i, j int) bool) bool //是否為正序排列
入?yún)lice必須是一個數(shù)組切片,否則發(fā)生panic
另外有需要云服務器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。