Maison >interface Web >js tutoriel >Partage sur l'algorithme et le code de recherche binaire JS

Partage sur l'algorithme et le code de recherche binaire JS

零到壹度
零到壹度original
2018-03-20 11:20:521549parcourir

Cet article partage principalement avec vous l'algorithme et le code de recherche binaire JS. Les amis qui en ont besoin peuvent s'y référer. J'espère qu'il pourra aider tout le monde.

4.1 Recherche binaire
Introduction à l'algorithme
La recherche binaire, également appelée demi-recherche, est un algorithme de recherche permettant de trouver des éléments spécifiques dans un tableau ordonné. Le processus de recherche peut être divisé en les étapes suivantes :
(1) Commencez par commencer la recherche à partir de l'élément du milieu du tableau ordonné. Si l'élément se trouve être l'élément cible (c'est-à-dire l'élément à trouver), le processus de recherche se termine, sinon passez à l'étape suivante.
(2) Si l'élément cible est supérieur ou inférieur à l'élément du milieu, recherchez dans la moitié du tableau qui est supérieure ou inférieure à l'élément du milieu, puis répétez la première étape.
(3) Si le tableau à une certaine étape est vide, cela signifie que l'élément cible est introuvable.
Code de référence :
Algorithme non récursif

function binary_search(arr,key){
  var low=0,
  high=arr.length-1;
  while(low<=high){
     var mid=parseInt((high+low)/2);
     if(key==arr[mid]){
        return mid;
     }else if(key>arr[mid]){
        low=mid+1;
     }else if(key<arr[mid]){
        high=mid-1;
    }else{
      return -1;
    }
  }
};
var arr=[1,2,3,4,5,6,7,8,9,10,11,23,44,86];
var result=binary_search(arr,10);
alert(result); //  9 返回目标元素的索引值

Algorithme récursif

function binary_search(arr,low,high,key){
  if(low>high){
    return -1;   
  }
  var mid=parseInt((high+low)/2);
  if(arr[mid]==key){
    return mid;
  }else if(arr[mid]>key){
    high=mid-1;
    return binary_search(arr,low,high,key);
  }else if(arr[mid]<key){
    low=mid+1;
    return binary_search(arr,low,high,key);
  }
};
var arr=[1,2,3,4,5,6,7,8,9,10,11,23,44,86];
var result=binary_search(arr,0,13,10);
alert(result); // 9 返回目标元素的索引值

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn