/**************************************************************
* 二分法查找算法
* 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;
}
分享到:
相关推荐
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++实现中,我们将探讨四种不同的二分法查找版本:递归健忘版、非递归健忘版、递归非健忘版以及非递归非健忘版。 1. **递归健忘版**: 这种版本通常不考虑已查找过的区间,而是每次都从整个数组开始。递归...
此程序演示了二分法查找算法(针对按从小到大排列的数组)的实现。 */ #include using namespace std; /* 功能: 实现数组的二分法查找(只算法只适合按从小到大排列的数组) 返回值:关键字在数组中的下标, 返回-1...
该资源用C语言写的,通俗易懂,用了很多基础的语法,缺点是没有把他编写成调用的函数
6. **根查找算法**:如二分法、牛顿法、 secant 方法等,用于寻找方程的实根。 7. **复数运算**:在信号处理和电路分析中,复数运算经常出现,书中可能涉及复数的加减乘除、复数的幂和根等。 8. **傅里叶变换**:...
9. **根查找算法**:如二分法、牛顿法、Brent法等,用于寻找方程的实根,常见于物理和工程问题的求解。 这些经典算法的C++实现,为学习者提供了直接操作和理解算法的机会,有助于提升编程技能和问题解决能力。通过...
对一组数据,二分法查找建立二叉递归树 属于基本算法,递归的实现
本文将详细介绍三种常见的查找算法:二分查找、插值查找和斐波那契查找,并以C++语言为例,阐述它们的核心实现原理。 1. **二分查找(Binary Search)** 二分查找是一种基于有序数组的高效查找算法。它的工作原理...
2. 查找:查找算法是数据结构中的基础,如二分查找、哈希查找等,它们在处理大量数据时能快速定位所需信息。在C++中,通常结合STL容器如set或map进行高效查找。 3. 排序:排序算法包括冒泡排序、选择排序、插入排序...
用递归函数实现二分法查找数组元素。 补充:要求给定数组采用如下代码定义 int data[200]; for (i=0; i; i++) data[i]=4*i+6; 输入格式 输入一个待查找的整数(该整数一定在数组data中)。 输出格式 ...
源码可能会演示这些查找算法在C++中的实现。 3. **常微分方程(ODE)**:常微分方程描述了随时间变化的系统。求解ODE通常使用欧拉方法、龙格-库塔方法或其他高级数值方法。源码可能包含了不同阶的数值方法,帮助...
二分法,也称为折半查找法,是计算科学中一种经典的数值方法,常用于求解方程。在数学上,二分法主要用于找到一个连续函数的零点,即找到使得函数值为0的点。这种方法特别适用于那些无法直接解析求解或者计算复杂度...
**二分查找算法详解** 二分查找,又称为折半查找,是一种在有序数组中查找特定元素的搜索算法。它的核心思想是利用分治策略,将查找问题不断缩小规模,直到找到目标元素或确定目标元素不存在。二分查找在计算机科学...