ホームページ > バックエンド開発 > Golang > Go で 2D 配列をソートするにはどうすればよいですか?

Go で 2D 配列をソートするにはどうすればよいですか?

Linda Hamilton
リリース: 2024-11-26 00:30:10
オリジナル
234 人が閲覧しました

How Can I Sort a 2D Array in Go?

Go での 2 次元配列のソート

多次元配列のソートは、ソートの実行方法を手動で定義することで Go で実現できます。次の 2 つのアプローチが可能です。

1. sort.Sort インターフェイスの実装:

sort.Sort で使用する Len、Less、および Swap のカスタム メソッドを作成し、並べ替え中に配列値を変更できるようにします。例:

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. sort.Slice 関数の使用:

配列をスライスに変換し、並べ替えを処理するための同等の関数を sort.Slice に提供します。例:

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)
ログイン後にコピー

どちらのアプローチでも、Go での 2 次元配列のソート動作をカスタマイズできます。

以上がGo で 2D 配列をソートするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート