


Démarrage rapide : utilisation des fonctions du langage Go pour implémenter un algorithme de recherche binaire
Démarrage rapide : utilisez les fonctions du langage Go pour implémenter l'algorithme de recherche binaire
L'algorithme de recherche binaire (Binary Search) est un algorithme de recherche efficace et sa complexité temporelle est O(log n). Lorsqu'il s'agit de tableaux ordonnés, la recherche binaire peut localiser rapidement l'emplacement de l'élément cible. Cet article utilisera les fonctions du langage Go pour implémenter l'algorithme de recherche binaire et fournira des exemples de code.
L'idée de base de l'algorithme de recherche binaire est de restreindre la plage de recherche en comparant la relation de taille entre la valeur cible et l'élément central du tableau jusqu'à ce que la valeur cible soit trouvée ou que la plage de recherche soit vide.
Ce qui suit est un exemple de code de la fonction du langage Go implémentant l'algorithme de recherche binaire :
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, "不在数组中") } }
Le code ci-dessus définit d'abord une fonction binarySearch
, qui accepte un tableau d'entiers ordonnés arr code > et une valeur cible <code>target
comme paramètres. La fonction utilise deux variables start
et end
pour représenter les positions de début et de fin de la plage de recherche. binarySearch
函数,该函数接受一个有序整型数组arr
和一个目标值target
作为参数。函数使用两个变量start
和end
来表示查找范围的起始和结束位置。
然后,在一个循环中,计算中间位置mid
,并根据中间元素和目标值之间的大小关系更新start
和end
的值,缩小查找范围。如果中间元素等于目标值,说明找到了目标值,返回其索引。如果查找范围为空,表示未找到目标值,返回-1。
在main
函数中,定义了一个有序整型数组arr
,以及目标值target
。调用binarySearch
mid
et mettez à jour start
et end
en fonction de la relation de taille entre l'élément du milieu et la valeur cible > valeur pour restreindre la portée de la recherche. Si l'élément du milieu est égal à la valeur cible, la valeur cible est trouvée et son index est renvoyé. Si la plage de recherche est vide, cela signifie que la valeur cible n'est pas trouvée et -1 est renvoyé. Dans la fonction main
, un tableau d'entiers ordonnés arr
et la valeur cible target
sont définis. Appelez la fonction binarySearch
pour effectuer une recherche binaire et effectuez la sortie correspondante en fonction de la valeur de l'index renvoyé. 🎜🎜Grâce aux exemples de code ci-dessus, nous pouvons rapidement apprendre à utiliser les fonctions du langage Go pour implémenter l'algorithme de recherche binaire. Cet algorithme est très efficace lors du traitement de données ordonnées à grande échelle et peut réduire considérablement le temps de recherche. Dans les applications pratiques, nous pouvons utiliser de manière flexible l'algorithme de recherche binaire selon des scénarios spécifiques pour améliorer l'efficacité de l'exécution du code. 🎜Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Problème de threading de file d'attente dans Go Crawler Colly explore le problème de l'utilisation de la bibliothèque Crawler Crawler dans le langage Go, les développeurs rencontrent souvent des problèmes avec les threads et les files d'attente de demande. � ...

La bibliothèque utilisée pour le fonctionnement du numéro de point flottante dans le langage go présente comment s'assurer que la précision est ...

Deux façons de définir les structures dans le langage GO: la différence entre les mots clés VAR et le type. Lorsque vous définissez des structures, GO Language voit souvent deux façons d'écrire différentes: d'abord ...

Quelles bibliothèques de GO sont développées par de grandes entreprises ou des projets open source bien connus? Lors de la programmation en Go, les développeurs rencontrent souvent des besoins communs, ...

La différence entre l'impression de chaîne dans le langage go: la différence dans l'effet de l'utilisation de fonctions println et string () est en Go ...

Le problème de l'utilisation de Redessstream pour implémenter les files d'attente de messages dans le langage GO consiste à utiliser le langage GO et redis ...

Que dois-je faire si les étiquettes de structure personnalisées à Goland ne sont pas affichées? Lorsque vous utilisez Goland pour le développement du langage GO, de nombreux développeurs rencontreront des balises de structure personnalisées ...

GO POINTER SYNTAXE ET ATTENDRE DES PROBLÈMES DANS LA BIBLIOTHÈQUE VIPER Lors de la programmation en langage Go, il est crucial de comprendre la syntaxe et l'utilisation des pointeurs, en particulier dans ...
