排序
sort.Ints([]int{5, 4, 3})
sort.Sort(sort.Reverse(sort.IntSlice{3, 2, 1}))
// input: [ [5 10] [0 30] [15 20]]
// output: [[0 30] [5 10] [15 20]]
sort.Slice(intervals, func(i, j int) bool {
return intervals[i][0] < intervals[j][0]
})
sort.Slice(intervals, func(i, j int) bool {
if intervals[i][0] == intervals[j][0] {
return intervals[i][1] < intervals[j][1]
}
return intervals[i][0] < intervals[j][0]
})
sort.Sort(&Sorter{data: intervals})
type Sorter struct {
data [][]int
}
func (s *Sorter) Len() int {
return len(s.data)
}
func (s *Sorter) Less(i, j int) bool {
return s.data[i][0] <= s.data[j][0]
}
func (s *Sorter) Swap(i, j int) {
s.data[i], s.data[j] = s.data[j], s.data[i]
}
网友评论