最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

关于JS二分查找算法及代码的分享

来源:动视网 责编:小采 时间:2020-11-27 19:58:46
文档

关于JS二分查找算法及代码的分享

关于JS二分查找算法及代码的分享:本文主要和大家分享JS二分查找算法及代码,需要的朋友可以参考下,希望能帮助到大家。4.1 二分查找算法介绍二分法查找,也称折半查找,是一种在有序数组中查找特定元素的搜索算法。查找过程可以分为以下步骤:(1)首先,从有序数组的中间的元素开始搜索,如果
推荐度:
导读关于JS二分查找算法及代码的分享:本文主要和大家分享JS二分查找算法及代码,需要的朋友可以参考下,希望能帮助到大家。4.1 二分查找算法介绍二分法查找,也称折半查找,是一种在有序数组中查找特定元素的搜索算法。查找过程可以分为以下步骤:(1)首先,从有序数组的中间的元素开始搜索,如果


本文主要和大家分享JS二分查找算法及代码,需要的朋友可以参考下,希望能帮助到大家。

4.1 二分查找
算法介绍
二分法查找,也称折半查找,是一种在有序数组中查找特定元素的搜索算法。查找过程可以分为以下步骤:
(1)首先,从有序数组的中间的元素开始搜索,如果该元素正好是目标元素(即要查找的元素),则搜索过程结束,否则进行下一步。
(2)如果目标元素大于或者小于中间元素,则在数组大于或小于中间元素的那一半区域查找,然后重复第一步的操作。
(3)如果某一步数组为空,则表示找不到目标元素。
参考代码:
非递归算法

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 返回目标元素的索引值

递归算法

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 返回目标元素的索引值

文档

关于JS二分查找算法及代码的分享

关于JS二分查找算法及代码的分享:本文主要和大家分享JS二分查找算法及代码,需要的朋友可以参考下,希望能帮助到大家。4.1 二分查找算法介绍二分法查找,也称折半查找,是一种在有序数组中查找特定元素的搜索算法。查找过程可以分为以下步骤:(1)首先,从有序数组的中间的元素开始搜索,如果
推荐度:
标签: 分享 js 代码
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top