Rumah > pembangunan bahagian belakang > Golang > Bagaimanakah Saya Boleh Isih Tatasusunan 2D dengan Cekap dalam Go?

Bagaimanakah Saya Boleh Isih Tatasusunan 2D dengan Cekap dalam Go?

Patricia Arquette
Lepaskan: 2024-12-23 09:52:08
asal
666 orang telah melayarinya

How Can I Efficiently Sort a 2D Array in 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] }
Salin selepas log masuk

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
})
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan