Maison >développement back-end >Golang >Comment puis-je trier un tableau 2D dans Go ?
Le tri d'un tableau multidimensionnel peut être réalisé dans Go en définissant manuellement la manière dont vous souhaitez que le tri se produise. Deux approches peuvent être adoptées :
1. Implémentation de l'interface sort.Sort :
Créez des méthodes personnalisées pour Len, Less et Swap à utiliser avec sort.Sort, vous permettant de modifier les valeurs du tableau pendant le tri. Par exemple :
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) }
2. Utilisation de la fonction sort.Slice :
Convertissez le tableau en tranche et fournissez une fonction comparable pour sort.Slice pour gérer le tri. Par exemple :
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)
Les deux approches vous permettent de personnaliser le comportement de tri de votre tableau bidimensionnel dans Go.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!