Rumah >pembangunan bahagian belakang >Golang >Menyusun algoritma pelaksanaan golang
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!