我想在Go中排序一个二维数组。谁能建议我该怎么做?
例如,如果我有,
var matrix [3][3]int{ {2,3,1}, {6,3,5}, {1,4,9} }
然后有类似的东西,
sort.Sort(matrix)
sort.Sort
type Matrix [3][3]int func (m Matrix) Len() int { return len(m) } func (m Matrix) Less(i, j int) bool { for x := range m[i] { if m[i][x] == m[j][x] { continue } return m[i][x] < m[j][x] } return false } func (m *Matrix) Swap(i, j int) { m[i], m[j] = m[j], m[i] } func main() { m := Matrix(matrix) sort.Sort(&m) }
sort.Slice
matrix
sort.Slice(matrix[:], func(i, j int) bool { for x := range matrix[i] { if matrix[i][x] == matrix[j][x] { continue } return matrix[i][x] < matrix[j][x] } return false }) fmt.Println(matrix)