Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Menyusun algoritma pelaksanaan golang

Menyusun algoritma pelaksanaan golang

PHPz
PHPzasal
2023-05-15 13:13:07529semak imbas

Algoritma pengisihan ialah salah satu algoritma paling asas dalam bidang sains komputer Ia adalah proses menyusun semula set data dalam susunan tertentu. Algoritma pengisihan biasa termasuk isihan gelembung, isihan pemilihan, isihan sisipan, isihan cepat, dsb. Artikel ini akan mengambil bahasa golang sebagai contoh untuk memperkenalkan pelaksanaan beberapa algoritma pengisihan biasa.

1. Isih Buih

Isih Buih ialah algoritma pengisihan yang mudah dan intuitif Ia berulang kali merentasi urutan untuk diisih dan membandingkan dua elemen pada satu masa. bertukar kedudukan. Proses pelaksanaan khusus adalah seperti berikut:

func bubbleSort(arr []int) []int {

n := len(arr)
for i := 0; i < n-1; i++ {
    for j := 0; j < n-i-1; j++ {
        if arr[j] > arr[j+1] {
            arr[j], arr[j+1] = arr[j+1], arr[j]
        }
    }
}
return arr

}

2. Isih pilihan

Isih pemilihan ( Selection Sort) ialah algoritma pengisihan yang mudah dan intuitif Proses pelaksanaannya secara berurutan memilih elemen terkecil (atau terbesar) daripada elemen data untuk diisih, menyimpannya pada permulaan jujukan, dan kemudian memilih elemen yang tidak diisih yang tinggal. . Teruskan mencari elemen terkecil (atau terbesar) dalam jujukan dan letakkannya di penghujung jujukan yang diisih. Proses pelaksanaan khusus adalah seperti berikut:

func selectionSort(arr []int) []int {

n := len(arr)
for i := 0; i < n-1; i++ {
    minIndex := i
    for j := i + 1; j < n; j++ {
        if arr[j] < arr[minIndex] {
            minIndex = j
        }
    }
    arr[i], arr[minIndex] = arr[minIndex], arr[i]
}
return arr

}

3. Isih sisipan

Isihan sisipan ( Insertion Sort) ialah algoritma pengisihan yang mudah dan intuitif. Idea asasnya ialah memasukkan elemen data untuk diisih ke dalam urutan yang telah disusun mengikut saiz kuncinya Pada mulanya, diandaikan bahawa elemen data pertama Ia membentuk satu urutan tersusun dengan sendirinya, dan elemen data yang selebihnya tidak tersusun. Proses pelaksanaan khusus adalah seperti berikut:

func insertionSort(arr []int) []int {

n := len(arr)
for i := 1; i < n; i++ {
    tmp := arr[i]
    j := i - 1
    for ; j >= 0 && arr[j] > tmp; j-- {
        arr[j+1] = arr[j]
    }
    arr[j+1] = tmp
}
return arr

}

4. Isih pantas

Isih Pantas ( Quick Sort) ialah algoritma pengisihan yang cekap yang menguraikan elemen data kepada set elemen bebas yang lebih kecil dengan cara rekursif kendiri untuk mencapai tujuan pengisihan. Proses pelaksanaan khusus adalah seperti berikut:

func quickSort(arr []int) []int {

if len(arr) <= 1 {
    return arr
}
pivot := arr[0]
left, right := 0, len(arr)-1
for i := 1; i <= right; {
    if arr[i] < pivot {
        arr[left], arr[i] = arr[i], arr[left]
        left++
        i++
    } else if arr[i] > pivot {
        arr[right], arr[i] = arr[i], arr[right]
        right--
    } else {
        i++
    }
}
quickSort(arr[:left])
quickSort(arr[left+1:])
return arr

}

Di atas ialah pelaksanaan bahasa golang bagi empat asas cara menyusun algoritma. Dalam proses pembangunan sebenar, mengikut saiz data dan ciri-ciri data, adalah perlu untuk memilih algoritma pengisihan yang sesuai untuk pengisihan untuk mencapai kesan pengisihan yang lebih baik.

Atas ialah kandungan terperinci Menyusun algoritma pelaksanaan golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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