二分法查找(折半查找)【有序表快速查找】

二分法查找,又称折半查找,是一种在有序数组中高效搜索目标值的算法。通过不断将查找区间减半,直到找到目标值或确定其不存在。这种方法大大减少了查找次数,尤其在大型数据集上表现优越。本文将深入探讨二分法查找的原理、实现步骤及其实现代码示例。
摘要由CSDN通过智能技术生成
#include<iostream>
#include<algorithm>
#include<time.h>
using namespace std;
int *S;  //目标数组
int Index;  //待查找元素
int recursion; //递归时间
int without_recursion; //非递归时间
bool cmp(int a,int b){
    return a < b;
}
/* 初始化函数  */
void Initial(int &n){
    /* 数组长度初始化 */
    cout<<"please input the length of the array: "<<endl;
    cin>>n;
    S = new int[n];

    /*按任意顺序输入长度为n的数组*/
    cout<<"please input array: "<<endl;
    for(int i = 0;i < n;i++)cin>>S[i];

    /*输入待查找的值*/
    cout<<"please input the index: "<<endl;
    cin>>Index;

    /*数组排序*/
    sort(S,S + n,cmp);
}
/* 递归实现二分搜索 */
int Recursion_BinarySearch(int left,int right){
    /*递归边界条件*/
    if(left > right)return 0;

    /*递归查找*/
    int mid = (left + right) / 2;
    if(S[mid] == Index)return mid + 1;
    else{
        if(S[mid] > Index)Recursion_Bina
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值