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     SuitS []int
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         SuitS: make([]int, 0, total),
42     }
43     for total > 0 {
44         kVak.SuitS = append(kVak.SuitS, rand.Intn(1000))
45         total--
46     }
47     return kVak
48 }
View Code

猜你喜欢

转载自www.cnblogs.com/--just-lbk/p/11698143.html