Binary Search 是一个搜寻演算法~ 它的时间复杂度只有O log(n)~
但使用它之前要先确认资料是已排序过的~
在使用回圈将 target 与中间值比较,如 target 大於中间值,就往右搜寻~ 否则就往左搜寻~
学习目标: Binary Search的概念及实务
学习难度: ☆☆☆
#include <iostream>
#include <algorithm> //内建sort的library
using namespace std;
int BinarySearch(int array[],int length,int target)
{
int start,end,mid;
start=0;
end=length-1;
while(start<=end)
{
mid=(start+end)/2;
if(array[mid]==target)
{
return ++mid;
}
else if(target>array[mid])
{
start=mid+1;
}
else if(target<array[mid])
{
end=mid-1;
}
}
}
int main()
{
int array[8]={12,3,1,5,18,10,7,35};
int length=sizeof(array)/sizeof(array[0]); /*array的长度是array的大小除以单一元素的大小*/
sort(array,array+length); /*可以先用内建的sort,如果没用其他排序*/
int target=BinarySearch(array,length,7);
cout<<target<<endl;
return 0;
}
参考资料:
https://shengyu7697.github.io/cpp-binary-search/
>>: 【C#】Creational Patterns Singleton Mode
程序码导读 点开我们的main.c档案,可以看到里面密密麻麻的注解,第一次看到还真令人害怕,但其实他...
表单类型是网页很常见的呈现方式,表单元素有文字框<input>、<textarea...
没有人是一座孤岛,而技术与软件亦然。早在 Hoddarla 抵达系列文本篇最後的基本命令列功能之前、...
前言 昨天有提到LIFF中,与bluetooth相关的APIs,因为技术问题,将暂时移除。所以如果要...
纳今天来做做跳转页面 内导内 就是呢 假设做一个首页 可以选注册或登入 先撇开登入之後 回到首页要显...