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

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

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-23 09:52:08591ブラウズ

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

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

行列とも呼ばれる 2 次元配列は、さまざまなプログラミング アプリケーションでよく使用されます。 Go で 2 次元配列を操作しており、それを並べ替える必要がある場合、標準ライブラリにはこのタスク専用の組み込みメソッドが提供されていません。ただし、採用できる戦略がいくつかあります。

カスタム並べ替えメソッドの作成:

1 つの方法は、独自の並べ替えメソッドを定義することです。これは、sort.Interface インターフェイスに必要な 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] }

sort.Slice 関数の使用:

または、sort.Slice 関数を使用できます。これにより、並べ替えの柔軟性が向上します。 2D 配列をスライスに変換し、カスタムのless 関数を指定します。

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

これらの戦略のいずれかを実装し、適切なソート関数を提供することで、Go で 2 次元配列を効果的にソートできます。使用する具体的なアプローチは、特定の要件と好みによって異なります。

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。