golang-sort

简单使用sort

复制代码
 1 package main
 2 
 3 import (
 4     "fmt"
 5     "math/rand"
 6     "sort"
 7     "time"
 8 )
 9 
10 type KVal struct {
11     K   int
12     Val interface{} //Arbitrary data
13 }
14 
15 type KData []*KVal
16 
17 func (v KData) Len() int           { return len(v) }
18 func (v KData) Less(i, j int) bool { return v[i].K < v[j].K }
19 func (v KData) Swap(i, j int)      { v[i], v[j] = v[j], v[i] }
20 
21 const (
22     NUM = 5
23 )
24 
25 func main() {
26     rand.Seed(time.Now().Unix())
27     datas := make(KData, 0, NUM)
28     for i := 0; i < NUM; i++ {
29         datas = append(datas, genData(i))
30     }
31     sort.Sort(datas)
32     for _, v := range datas {
33         fmt.Println(v)
34     }
35 }
36 
37 func genData(k int) *KVal {
38     total := rand.Intn(10) + 1
39     kVak := &KVal{
40         K:   rand.Intn(9999),
41         Val: make([]int, 0, total),
42     }
43     val := make([]int, 0, total)
44     for total > 0 {
45         val = append(val, rand.Intn(1000))
46         total--
47     }
48     kVak.Val = val
49     return kVak
50 }
View Code
复制代码

 

posted @   NorseLZJ  阅读(171)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示