二分查找算法-js
程序员文章站
2024-03-20 09:58:10
...
目录
2.所以如果是一个无序的序列的话,要对其进行排序,然后再进行二分查找
一、介绍:
1.二分查找算法是:要一个有序的序列,然后进行查找。
2.所以如果是一个无序的序列的话,要对其进行排序,然后再进行二分查找
二、代码分析
1.对数据进行排序:(冒泡排序)
//这个是一个冒泡的排序算法
function sort(num)
{
for(let i=0;i<num.length;i++)
{
for(let j=i;j<num.length;j++)
{
if(num[i]>num[j])
{
var change = num[j];
num[j] = num[i];
num[i] = change;
}
}
}
return num;
}
2.二分查找:
function BinarySearch(num,val)
{
var low = 0;
var len = num.length-1;
var high = len;
while(low<=high)
{
var mid= Math.floor((low+high)/2);
if(val==num[mid])
{
return mid;//找到了,就返回其对应的index
}else if(val>num[mid])
{
low = mid+1;
}else if(val<num[mid])
{
high = mid-1;
}
console.log(num[mid]);
console.log("mid:"+mid);
}
return -1;//返回-1,代表是查找失败
}
3.测试代码:
c = [2,3,1,5,7,9,8];
var sort_c = sort(c);
var result = BinarySearch(sort_c,8);
console.log("result:"+b);
4.测试结果:
上一篇: 计蒜客-1000天纪念日 (日期模拟)