Golang sort包排序(详细全集)

您所在的位置:网站首页 数组排序工具类型有哪几种 Golang sort包排序(详细全集)

Golang sort包排序(详细全集)

2024-07-10 09:48| 来源: 网络整理| 查看: 265

文章目录 一、整型倒序 二、浮点型三、字符串型四、真的使用的是快速排序算法吗?五、稳定性六、结构体类型排序

一、整型

首先用下里面提供的最简单的例子,排序一下整形

package main import ( "fmt" "sort" ) func main() { a := sort.IntSlice{2, 8, 3, 7, 9, 4, 1, 6} fmt.Println("排序前", a) sort.Sort(a) fmt.Println("排序后", a) }

在这里插入图片描述

你最好奇的应该是 sort.IntSlice 这个是什么东西。点进去查看源码,可以看到它是 []int 类型并绑定了四个方法,前三个是对排序的对象必须得拥有的(也就是说如果自己想对一个对象排序时,必须实现这些方法),但sort包已经给我们实现了。然后还绑定了一个 Sort() 方法 在这里插入图片描述 基于这些信息,我们就可以改造一下前面的示例,直接调用该对象里面绑定的 Sort() 方法,而不是使用sort包中提供的 Sort() 方法,结果不变。

func main() { a := sort.IntSlice{2, 8, 3, 7, 9, 4, 1, 6} fmt.Println("排序前", a) // sort.Sort(a) a.Sort() fmt.Println("排序后", a) }

如果我们不使用里面的提供的 sort.IntSlice 类型,而是自己实现一个,怎么写,直接复制里面 IntSlice 的实现,然后换一个名字即可【苦笑.jpg】

package main import ( "fmt" "sort" ) type paixua []int func (x paixua) Len() int { return len(x) } func (x paixua) Less(i, j int) bool { return x[i]


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3