`

C++二分法查找算法

阅读更多

/**************************************************************
* 二分法查找算法
* wxz 2011-05-04
***************************************************************/
#include<iostream>
#define MaxSize 100
using namespace std;
typedef int DataType;

typedef struct ST
{
DataType Data[MaxSize];
int Length;
}ST;

void CreateST(ST *st)
{
int i;
cout<<"请输入要建立的顺序表的长度"<<"("<<MaxSize<<"以内)"<<endl;
cin>>st->Length;
while(st->Length>100)
{
cout<<"长度不能大于"<<MaxSize<<endl;
cout<<"请输入要建立的顺序表的长度"<<"("<<MaxSize<<"以内)"<<endl;
cin>>st->Length;
}
cout<<"请输入"<<st->Length<<"个整数:"<<endl;
for(i=0;i<=st->Length-1;i++)
cin>>st->Data[i];

}

int BinarySearch(ST *st,DataType d)
{
int low,high,mid;
int count;
int flag;
low=0;
count=1;
flag=0;
high=st->Length-1;
while(low<=high)
{
mid=(low+high)/2;
if (d<st->Data[mid])
high=mid-1;
else
if(d>st->Data[mid])
low=mid+1;
else
{
flag=mid;
break;
}
count++;

}

return flag;
}
int main()
{
int idx;
DataType d;
ST *st=new ST;
CreateST(st);
cout<<"请输入要查找的元素:";
cin>>d;
idx=BinarySearch(st,d)+1;
if(idx==0)
cout<<"没有找到你要查找的元素。";
else
cout<<"所要查找的元素"<<d<<"的位置是"<<idx<<endl;
return 0;
}

 

 

分享到:
评论

相关推荐

    C++版二分法查找算法

    class binary_search { public: int * arr; int nElems; public : binary_search(); binary_search(int max); virtual ~binary_search(); int find(int searchKey); void insert(int value);...

    二分法检索查找 计算机算法 c/c++语言

    二分法检索查找 计算机算法 c/c++语言

    C++二分法在数组中查找关键字的方法

    主要介绍了C++二分法在数组中查找关键字的方法,涉及C++数组查找算法的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下

    二分法查找某数的C语言程序

    该资源用C语言写的,通俗易懂,用了很多基础的语法,缺点是没有把他编写成调用的函数

    二分法查找(4种版本) C++

    二分法查找C++代码,包括递归健忘版、非递归健忘版、递归非健忘版、非递归健非忘版,用到了stl里的vector和模板的知识

    二分法查找

    对一组数据,二分法查找建立二叉递归树 属于基本算法,递归的实现

    二分查找、插值查找、斐波那契查找对比C++的实现

    C++二分查找、插值查找、斐波那契查找对比C++的实现源码,不是完整程序,仅是核心算法文件 想要跑起来 自己要懂得动动手咯

    二分法实现查找数组中的最大次大值

    用二分法的策略实现; (2)写出实验报告。 一、 需求分析: 1、输入要输入数组元素的个数,为数组分配存储空间(动态数组); 2、输入数组元素; 3、利用二分法找出数组中的最大值和次大值; 4、输出结果;

    C/C++常用算法手册.秦姣华(有详细书签).rar

    5.4.1 顺序表结构中的查找算法 145 5.4.2 链表结构中的查找算法 148 5.4.3 树结构中的查找算法 151 5.4.4 图结构中的查找算法 152 5.5 小结 153 第6章 基本数学问题 154 6.1 判断闰年 154 6.2 多项式计算 ...

    查找算法--二分查找

    数据结构用C++的实现,蓝桥杯,ACM,算法基础,C++入门

    《三天学会C数据结构和算法》视频

    资源名称:《三天学会C 数据结构和算法》视频资源目录:【】day01AM_数据结构介绍_节点【】day01PM_链表【】day02AM_链表_栈_队列【】day02PM_二叉树【】day03AM_二叉树_算法基础_二分法查找【】day03PM_排序算法_...

    二分查找 c语言

    用c语言实现算法分析与设计的二分查找,代码短小精悍。

    C++二分查找问题汇总

    C++二分查找问题、解答思路、答案相关汇总

    c++ 二分查找法,test ok

    c++ 二分查找法,test ok

    趣味C++小程序.rar

    八皇后游戏、this指针的应用、二分法求方程根、模拟抛硬币所得正面的频率图、一个小公司的工资管理系统、二分查找算法、汉诺塔、杨辉三角形等27各C++小程序,供初学者参考

    C++小程序合集.rar

    二分查找算法, 二分法求方程根, 汉诺塔, 检查数组是否越界, 建立学生成绩管理系统, 金卡帐目管理, 拷贝构造函数, 浏览文本文件, 模拟抛硬币所得正面的频率图, 探询路径, 文本文件复制, 我的朋友信息管理...

    通过大量实例来学习c++

    八皇后游戏 长途电话计费程序 打印旋转方阵 二分查找算法 二分法求方程根 建立学生成绩管理系统 文本文件复制 智者生存...

    比较搜索的时间复杂度

    1. 实现一个在无序线性表中查找元素key值为x的元素的算法 2. 实现一个递增有序表中采用二分查找算法查找key值为x的元素的算法。 3. 实现二叉搜索树

    精选27个C++经典程序

    100米比赛排名、this指针的应用、八皇后游戏、比较同学的年龄、比我疆土、编排日历、表白爱之“心”、打印旋转方阵、二分查找算法、二分法求方程根、汉诺塔、检查数组是否越界、建立学生成绩管理系统等等..

Global site tag (gtag.js) - Google Analytics