返回顶部

排序和查找

排序

需要注意的是因为数据的类型是值类型的,我们想要对其进行排序的时候需要传入引用类型(切片slice)

排序操作主要都在sort中,导入就可以使用

import sort 

官方文档

https://golang.org/pkg/sort/

对整数进行排序

package main

import (
    "fmt"
    "sort"
)

func testIntSort() {
    var a = [...]int{1, 8, 38, 2, 348, 484}
    sort.Ints(a[:])

    fmt.Println(a)
}


func main() {
    testIntSort()

}

输出结果如下

 对字符串进行排序

package main

import (
    "fmt"
    "sort"
)

func testStrings() {
    var a = [...]string{"abc", "efg", "b", "A", "eeee","B"}
    sort.Strings(a[:])

    fmt.Println(a)
}

func main() {
    testStrings()

}

输出结果如下

对浮点型进行排序

package main

import (
    "fmt"
    "sort"
)



func testFloat() {
    var a = [...]float64{2.3, 0.8, 28.2, 392342.2, 0.6}
    sort.Float64s(a[:])

    fmt.Println(a)
}

func main() {testFloat()
 
}

输出结果如下

搜索

 官方文档上说内部是使用二分查找,所以我们要对一个数组排序好,才能用里面的search方法

package main

import (
    "fmt"
    "sort"
)

func testIntSearch() {
    var a = [...]int{1, 8, 38, 2, 348, 484}
    sort.Ints(a[:])
    index := sort.SearchInts(a[:], 348)
    fmt.Println(index)
}


func main() {
    testIntSearch()
}

输出结果如下

 

posted @ 2019-02-03 21:31  Crazymagic  阅读(185)  评论(0编辑  收藏  举报