golang 结构体 slice 排序
go语言的slice()不仅仅可以对int类型的数组进行排序,还可以对struct类型的数组进行排序
排序函数如下
1. Slice() 不稳定排序
2. SliceStable() 稳定排序
3. SliceIsSorted() 判断是否已排序
结构体定义如下,我们完全可以定义更复杂的结构体:
// 结构体定义
type test struct {value intstr string
}
结果如下图:
完整代码如下:
package mainimport ("fmt""sort"
)// 结构体定义
type test struct {value intstr string
}func main() {s := make([]test, 5)s[0] = test{value: 2, str: "test2"}s[1] = test{value: 4, str: "test4"}s[2] = test{value: 1, str: "test1"}s[3] = test{value: 5, str: "test5"}s[4] = test{value: 3, str: "test3"}fmt.Println("初始化结果:")fmt.Println(s)// 从小到大排序(不稳定排序)sort.Slice(s, func(i, j int) bool {if s[i].value < s[j].value {return true}return false})fmt.Println("\n从小到大排序结果:")fmt.Println(s)// 从小到大排序(稳定排序)sort.SliceStable(s, func(i, j int) bool {if s[i].value < s[j].value {return true}return false})// 是否从小到大排序bLess := sort.SliceIsSorted(s, func(i, j int) bool {if s[i].value < s[j].value {return true}return false})fmt.Printf("数组s是否从小到大排序,bLess:%v\n", bLess)// 从大到小排序(不稳定排序)sort.Slice(s, func(i, j int) bool {if s[i].value > s[j].value {return true}return false})fmt.Println("\n从大到小排序结果:")fmt.Println(s)// 是否从大到小排序bMore := sort.SliceIsSorted(s, func(i, j int) bool {if s[i].value > s[j].value {return true}return false})fmt.Printf("数组s是否从大到小排序,bMore:%v\n", bMore)
}
golang 结构体 slice 排序相关推荐
- Golang结构体排序
Golang对结构体字段排序的案例 本案例通过 sort 方法,对产品的 price 字段进行排序,仅供参考... package mainimport ("fmt""s ...
- go结构体初始化_浅谈golang结构体偷懒初始化
运行一段程序,警告: service/mysqlconfig.go:63::error: golang.guazi-corp.com/tools/ksql-runner/model.CreatingM ...
- golang 结构体简介
Go 通过类型别名(alias types)和结构体的形式支持用户自定义类型,或者叫定制类型.试图表示一个现实世界中的实体. 结构体由一系列命名的元素组成,这些元素又被称为字段,每个字段都有一个名称和 ...
- PAT甲级1141 PAT Ranking of Institutions :[C++题解]结构体、排序、哈希表、结构体构造函数、结构体内写函数、排名
文章目录 题目分析 题目来源 题目分析 来源:acwing 分析:和下面这题是一道题: PAT甲级1137 Final Grading:[C++题解]结构体.排序.哈希表.结构体构造函数.结构体内写函 ...
- C++结构体多级排序的三种方法
C++结构体多级排序的三种方法 struct node{int chinese,math;char name[15]; }; 需求:按数学成绩从大到小排序 1.自定义比较器 //自定义比较函数 bo ...
- C语言结构体自定义排序
结构体自定义排序: 在最基础的C语言中,排序较为简单的有三种:冒泡,选择,插入.其中选择最劣.复杂一点的有快速排序和归并排序,在这里后两种我就不介绍了. 在使用结构体排序的时候,里面可能有许多不同的对 ...
- golang 结构体struct、数组、结构体数组 定义与赋值 、json string转struct
文章目录 1.结构体struct 1.1 声明结构体 1.2 初始化结构体 以及 传参 2. 结构体数组.append 3. 接口返回 含数组的结构体 常用写法 json string转struct ...
- C++中的结构体vector排序详解
C++中的结构体vector排序详解 使用sort函数对一个vector很常用,前提是通文件中必须包含#include ,但是针对结构体vector排序则需要进行一定的改动.具体事例如下所示: // ...
- C语言 · 运用结构体的排序方法
AllSight C语言 · 运用结构体的排序方法 之前遇到排序只想着最原始的方法,诸如冒泡,选择,快速排序等等,刚刚跟大牛学会了结构体的方法来排序,这样的话以后再也不用怕成绩统计.名次排序之类的题目 ...
最新文章
- Oracle 中多个字段显示成一列
- JS阻止事件冒泡的3种方法,以及他们之间的不同
- Leetcode 191. 位1的个数 解题思路及C++实现
- oracle 强制恢复,oracle数据库恢复
- 时间序列预测:I概述
- (转载)Unity真机调试
- SAP CDS view自学教程之八:SAP Fiori Elements里不同类型的annotation
- oracle exacc,【学习笔记】Oracle 11GR2新特性Adaptive Cursor Sharing(ACS)
- echarts 树图样式美化_echarts2 tree树图自定义显示缩放大小、位置
- SpringBoot工程不注册到Eureka上
- 绿盟科技:“无敌舰队”DDoS勒索防御关键是应急经验积累
- 运兴ETF:期权多空双向,策略多样优势大
- C语言/C++常见习题问答集锦(十九)之C语言与漫天飞雪
- 盲人的福音:布里斯托大学团队让AI学会了键入盲文
- android启动页广告图,一张图搞定APP启动页广告
- 算法题 硬币组合问题
- linu学习第二天:文件系统相关操作
- 计算物理学(数值分析)上机实验答案5、常微分方程初值问题的数值解法
- 一个字节中的1的个数
- 利用requsets、bs4、re库爬取豆瓣图书top250【Python】
热门文章
- SCons: A software construction tool
- Managed Metadata Service介绍系列 之三
- 牛客 - Alice and Bob(尺取+二分)
- CodeForces - 1332B Composite Coloring(数论+构造)
- python学全栈还是运维_Python全栈学习——Python基础及Web开发
- 安卓入门系列-04常见布局之LinearLayout(线性布局)
- python高级语法-套接字编程之UDP和TCP编程
- Delphi中String与PAnsiChar转换
- 对弈程序基本技术----Alpha-Beta搜索
- 使用OnCtlColor函数消息打造背景