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 サイトの他の関連記事を参照してください。