Rumah > pembangunan bahagian belakang > Golang > Permulaan Pantas: Menggunakan Fungsi Bahasa Go untuk Melaksanakan Algoritma Carian Binari

Permulaan Pantas: Menggunakan Fungsi Bahasa Go untuk Melaksanakan Algoritma Carian Binari

王林
Lepaskan: 2023-07-30 10:51:24
asal
1703 orang telah melayarinya

Mula Pantas: Gunakan fungsi bahasa Go untuk melaksanakan algoritma carian binari

Algoritma carian binari (Carian Binari) ialah algoritma carian yang cekap, dan kerumitan masanya ialah O(log n). Apabila berurusan dengan tatasusunan tertib, carian binari boleh mencari lokasi elemen sasaran dengan cepat. Artikel ini akan menggunakan fungsi bahasa Go untuk melaksanakan algoritma carian binari dan memberikan contoh kod.

Idea asas algoritma carian binari adalah untuk mengecilkan julat carian dengan membandingkan hubungan saiz antara nilai sasaran dan elemen tengah tatasusunan sehingga nilai sasaran ditemui atau julat carian kosong.

Berikut ialah contoh kod bagi fungsi bahasa Go yang melaksanakan algoritma carian binari:

package main

import "fmt"

// 二分查找函数
func binarySearch(arr []int, target int) int {
    start := 0
    end := len(arr) - 1

    for start <= end {
        mid := (start + end) / 2

        // 目标值在数组右侧
        if arr[mid] < target {
            start = mid + 1
        }
        // 目标值在数组左侧
        else if arr[mid] > target {
            end = mid - 1
        }
        // 找到目标值
        else {
            return mid
        }
    }

    // 没有找到目标值
    return -1
}

func main() {
    arr := []int{1, 3, 5, 7, 9, 11, 13, 15}
    target := 9

    index := binarySearch(arr, target)

    if index != -1 {
        fmt.Println("目标值", target, "在数组中的索引为", index)
    } else {
        fmt.Println("目标值", target, "不在数组中")
    }
}
Salin selepas log masuk

Kod di atas mula-mula mentakrifkan fungsi binarySearch, yang menerima tatasusunan integer arr kod > dan nilai sasaran <code>sasaran sebagai parameter. Fungsi ini menggunakan dua pembolehubah mula dan end untuk mewakili kedudukan mula dan akhir julat carian. binarySearch函数,该函数接受一个有序整型数组arr和一个目标值target作为参数。函数使用两个变量startend来表示查找范围的起始和结束位置。

然后,在一个循环中,计算中间位置mid,并根据中间元素和目标值之间的大小关系更新startend的值,缩小查找范围。如果中间元素等于目标值,说明找到了目标值,返回其索引。如果查找范围为空,表示未找到目标值,返回-1。

main函数中,定义了一个有序整型数组arr,以及目标值target。调用binarySearch

Kemudian, dalam satu gelung, kirakan kedudukan tengah tengah dan kemas kini mula dan tamat berdasarkan hubungan saiz antara elemen tengah dan nilai sasaran > nilai untuk mengecilkan skop carian. Jika elemen tengah sama dengan nilai sasaran, nilai sasaran ditemui dan indeksnya dikembalikan. Jika julat carian kosong, ini bermakna nilai sasaran tidak ditemui dan -1 dikembalikan.

Dalam fungsi utama, tatasusunan integer arr dan nilai sasaran sasaran ditakrifkan. Panggil fungsi binarySearch untuk melakukan carian binari dan melaksanakan output yang sepadan berdasarkan nilai indeks yang dikembalikan. 🎜🎜Melalui contoh kod di atas, kita boleh belajar dengan cepat cara menggunakan fungsi bahasa Go untuk melaksanakan algoritma carian binari. Algoritma ini sangat cekap apabila memproses data pesanan berskala besar dan boleh mengurangkan masa carian dengan ketara. Dalam aplikasi praktikal, kami boleh menggunakan algoritma carian binari secara fleksibel mengikut senario tertentu untuk meningkatkan kecekapan pelaksanaan kod. 🎜

Atas ialah kandungan terperinci Permulaan Pantas: Menggunakan Fungsi Bahasa Go untuk Melaksanakan Algoritma Carian Binari. 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan