Maison > développement back-end > Golang > Comment puis-je trier un tableau 2D dans Go ?

Comment puis-je trier un tableau 2D dans Go ?

Linda Hamilton
Libérer: 2024-11-26 00:30:10
original
290 Les gens l'ont consulté

How Can I Sort a 2D Array in Go?

Tri d'un tableau bidimensionnel 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)
}
Copier après la connexion

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)
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal