/** 将数组分成1/3和2/3大小不等的两部分的二分检索算法 <==算法复杂度分析===== 最坏情况(可以利用判定树来求):(2/3)^time = n , time = O(log2/3 n); 最好情况:O(1); ======================> */ #include<cstdio> #define NOTFOUND 555555555 //二分检索都需要排好序的数组 int sortedArr[] = {5,7,9,10,11,12,18,22,28}; int myBinary_search(int arr[],int s,int t,int target); int main() { //输入你要检索的目标值 int target; printf("please input the target you want to find:\n"); scanf("%d",&target); //开始检索并且返回结果 int index = myBinary_search(sortedArr,0,8,target); //根据检索结果来打印内容 if(index != NOTFOUND){ printf("The index of the target number in the array is %d\n",index); }else{ printf("The target is not in the array\n"); } return 0; } // 这是一个自定义的二分检索函数 // arr 表示待检索的数组 // s 表示检索开始位置 // t 表示检索结束位置 int myBinary_search(int arr[],int s,int t,int target){ while(s<t){ //三分之二处 int m = (t-s)/3*2+s; if(arr[m] == target) return m; else if(arr[m] < target) s = m + 1; else t = m - 1; } return NOTFOUND; }
相关推荐
关于二分检索的实验过程及编程关于二分检索的实验过程及编程关于二分检索的实验过程及编程关于二分检索的实验过程及编程
这个程序可实现最优二分检索树的构造,绘制和检索,请在Turboc 2.0下运行。
已知一个固定的标识符集合,希望产生一种构造二分检索树的方法。
算法设计与分析课做的小程序,输入任意一组数组,先对其递增排序,然后利用二分检索算法对其检索得到数组下表并输出下标数字
这个是二分检索的递归实现 具体的进去看看 有注释
利用C++实现的最小成本二分检索树,能够根据double类型的成功检索P和不成功检索Q构造出最小成本二分检索树,利用一个二叉树类自动构造出该树,并打印到标准输出!
在VC++6。0下用C++语言描述用动态规划法构造最优二分检索树问题,是学习算法的很好参考。
硬盘热插拔/1个HDMI、1个VGA、1个CVBS非同源输出/8路1080P解码/2个千兆网口/3个USB2.0/Smart 2.0/N+1热备/ANR/智能检索/浓缩播放/车牌检索/人脸检索/热度图/客流量统计/视频摘要回放/分时段回放/超高倍速回放,1,台,...
单源点最短路径,最优二分检索树算法程序实现,包含设计文档和源代码
快排与二分检索的递归与非递归算法分析与设计
二分检索源代码及输出二分检索源代码及输出 可以自己输入元素 可自定义组大小
C# 二分检索 源代码 迭代实现 cs源代码
C# 二分检索 递归实现 cs源代码
第四章 数据类型和应用4.4 二分检索正确答案:B你选对了正确答案:B你选对了用二分法与列表进行检索时,因为列表是可枚举对象,因此用for循环实现二分检索比wh
大学本科计算机算法要求程序,C语言编写,二分检索算法
二分检索的递归实现:这里使用的是JUnit单元测试方法,利用断言进行样例测试,结果显示3个样例全部通过。
对一段数组进行二分检索 查找是否有自己需要的字符
给定递增整数序列L,其大小为n,要求使用二分查找法查找任意元素的位置k(序列中第几个)
设S=(x1,x2,…,xn)是有序集,且x1…,已知键值和区间的存取概率分布为(a0,b1,a1,b2,…,bn,an),其中ai表示相应区间的搜索概率,bi表示相应键值的搜索概率。在所有表示有序集的二叉树中找出一棵具有最小平均路长的...
常见的动物无脊椎动物二歧分类检索表PPT课件.pptx