Rumah >pembangunan bahagian belakang >Golang >Bagaimanakah Saya Boleh Isih Tatasusunan 2D dengan Cekap dalam Go?
Isih Tatasusunan Dua Dimensi dalam Go
Tatasusunan dua dimensi, juga dikenali sebagai matriks, sering digunakan dalam pelbagai aplikasi pengaturcaraan. Jika anda bekerja dengan tatasusunan dua dimensi dalam Go dan perlu mengisihnya, perpustakaan standard tidak menyediakan kaedah terbina dalam khusus untuk tugasan ini. Walau bagaimanapun, terdapat beberapa strategi yang boleh anda gunakan:
Membuat Kaedah Isih Tersuai:
Satu pendekatan ialah mentakrifkan kaedah pengisihan anda sendiri. Ini boleh dilakukan dengan melaksanakan fungsi Len, Less dan Swap yang diperlukan oleh jenis. Antara muka antara muka. Menggunakan penuding adalah perlu untuk mengubah suai nilai tatasusunan semasa pengisihan:
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] }
Menggunakan isihan.Fungsi Slice:
Sebagai alternatif, anda boleh menggunakan fungsi isihan.Slice , yang memberikan lebih fleksibiliti dalam pengisihan. Tukar tatasusunan 2D kepada kepingan dan tentukan fungsi kurang tersuai:
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 })
Dengan melaksanakan salah satu daripada strategi ini dan menyediakan fungsi isihan yang sesuai, anda boleh mengisih tatasusunan dua dimensi anda dengan berkesan dalam Go. Pendekatan khusus untuk digunakan bergantung pada keperluan dan pilihan khusus anda.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Isih Tatasusunan 2D dengan Cekap dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!