关于sort包内的函数说明与使用,请查看 https://godoc.org/sort
在这里简单讲几个sort包中常用的函数
在Go语言中,对字符串的排序都是按照字节排序,也就是说在对字符串排序时是区分大小写的。
二分搜索算法
Go语言中提供了一个使用二分搜索算法的sort.Search(size,fn)方法:每次只需要比较㏒₂n个元素,其中n为切片中元素的总数。
sort.Search(size,fn)函数接受两个参数:所处理的切片的长度和一个将目标元素与有序切片的元素相比较的函数,该函数是一个闭包,如果该有序切片是升序排列,那么在判断时使用 有序切片的元素 >= 目标元素。该函数返回一个int值,表示与目标元素相同的切片元素的索引。
在切片中查找出某个与目标字符串相同的元素索引
因为char *strings[]不是指针而是指针数组,那么temp = strings[top]
strings[top] = strings[seek]
strings[seek] = temp
这种交换交换的就是主调函数中的数组中的指针,把指向字符串的指针顺序改变了,当然按次序输出就达到排序目的了……
package mainimport "fmt"
func Bub(value []int) {
flag := true //这里是打一个标识的意思
for i := 0 i < len(value)-1 i++ { //每完成一次这里的循环,都会有一个元素冒泡到最上面
flag = true
fmt.Printf("i=%d j=%d\n", i, len(value)-i-1)
for j := 0 j < len(value)-i-1 j++ {
if value[j] > value[j+1] {
value[j], value[j+1] = value[j+1], value[j]
flag = false
}
}
if flag == true { //当没有发生位置交换的时候说明,顺序排好了
break
}
}
}
func main() {
a := []int{7, 2, 1, 3, 5}
Bub(a)
}
只能帮你到这里了,建议你用在纸上演算一遍 那个 a 变量