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

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

Patricia Arquette
Libérer: 2024-12-23 09:52:08
original
665 Les gens l'ont consulté

How Can I Efficiently Sort a 2D Array in Go?

Tri d'un tableau bidimensionnel dans Go

Les tableaux bidimensionnels, également appelés matrices, sont souvent utilisés dans diverses applications de programmation. Si vous travaillez avec un tableau à deux dimensions dans Go et que vous devez le trier, la bibliothèque standard ne fournit pas de méthode intégrée spécifiquement pour cette tâche. Cependant, vous pouvez utiliser quelques stratégies :

Création de méthodes de tri personnalisées :

Une approche consiste à définir vos propres méthodes de tri. Cela peut être fait en implémentant les fonctions Len, Less et Swap requises par l'interface sort.Interface. L'utilisation d'un pointeur est nécessaire pour modifier les valeurs du tableau lors du tri :

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

Utilisation de la fonction sort.Slice :

Vous pouvez également utiliser la fonction sort.Slice , ce qui offre plus de flexibilité dans le tri. Convertissez le tableau 2D en tranche et spécifiez une fonction less personnalisée :

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

En implémentant l'une de ces stratégies et en fournissant une fonction de tri appropriée, vous pouvez trier efficacement votre tableau bidimensionnel dans Go. L'approche spécifique à utiliser dépend de vos besoins et préférences spécifiques.

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