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
Patricia Arquetteoriginal
2024-12-23 09:52:08590parcourir

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] }

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
})

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!

Déclaration:
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