


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!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Perpustakaan yang digunakan untuk operasi nombor terapung dalam bahasa Go memperkenalkan cara memastikan ketepatannya ...

Masalah Threading Giliran di GO Crawler Colly meneroka masalah menggunakan Perpustakaan Colly Crawler dalam bahasa Go, pemaju sering menghadapi masalah dengan benang dan permintaan beratur. � ...

Dua cara untuk menentukan struktur dalam bahasa Go: perbezaan antara VAR dan jenis kata kunci. Apabila menentukan struktur, pergi bahasa sering melihat dua cara menulis yang berbeza: pertama ...

Perpustakaan mana yang dibangunkan oleh syarikat besar atau projek sumber terbuka yang terkenal? Semasa pengaturcaraan di GO, pemaju sering menghadapi beberapa keperluan biasa, ...

Perbezaan antara percetakan rentetan dalam bahasa Go: perbezaan kesan menggunakan fungsi println dan rentetan () sedang ...

Masalah menggunakan redisstream untuk melaksanakan beratur mesej dalam bahasa Go menggunakan bahasa Go dan redis ...

Apa yang perlu saya lakukan jika label struktur tersuai di Goland tidak dipaparkan? Apabila menggunakan Goland untuk Pembangunan Bahasa GO, banyak pemaju akan menghadapi tag struktur tersuai ...

GO Pointer Syntax dan menangani masalah dalam penggunaan perpustakaan Viper semasa pengaturcaraan dalam bahasa Go, adalah penting untuk memahami sintaks dan penggunaan petunjuk, terutama dalam ...
