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!