Rumah > Artikel > pembangunan bahagian belakang > Permulaan Pantas: Menggunakan Fungsi Bahasa Go untuk Melaksanakan Algoritma Carian Binari
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, "不在数组中") } }
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
作为参数。函数使用两个变量start
和end
来表示查找范围的起始和结束位置。
然后,在一个循环中,计算中间位置mid
,并根据中间元素和目标值之间的大小关系更新start
和end
的值,缩小查找范围。如果中间元素等于目标值,说明找到了目标值,返回其索引。如果查找范围为空,表示未找到目标值,返回-1。
在main
函数中,定义了一个有序整型数组arr
,以及目标值target
。调用binarySearch
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!