欢迎光临
我们一直在努力

mt4/mt5编程: 快速查询之二分递归查找算法

通过递归快速查询指定的值

使用快查 基本都需要先将数组排序在查,不然话有些是查不出来的

template <typename T>
int BinarySearch2(T &arr[], T key, int low, int high)
{
    // 设置 m_high 以存储数组高度
    int m_high = high;
    // 如果 high 等于数组大小,则 m_high 减一
    if(high = ArraySize(arr)) m_high = high - 1;
    
    // 如果 key 小于 arr[low] 或 key 大于 arr[m_high] 或 low 大于 m_high,返回 -1
    if(key < arr[low] || key > arr[m_high] || low > m_high)
      return -1;
      
    // 计算 mid,即数组的中间位置
    int mid = low+(m_high-low)/2;
    // 如果 arr[mid] 等于 key,返回 mid
    if(arr[mid] == key)
    {
       return mid;
    }
    // 如果 arr[mid] 大于 key,在 low 和 mid-1 之间递归查找
    if(arr[mid] > key)
    {
       return BinarySearch2(arr, key, low, mid-1);
    }
    // 如果 arr[mid] 小于 key,在 mid+1 和 m_high 之间递归查找
    if(arr[mid] < key)
    {
       return BinarySearch2(arr, key, mid+1, m_high);
    }
        
    // 其他情况,返回 -1
    return -1;
}

调用

void OnStart()
  {
    int arr[] = {12,5,3,4,8,6,7,9,10};
    printf("查询结果: %d",BinarySearch2(arr,0,0,ArraySize(arr)));
  }

前台输出结果

2023.01.05 20:18:18.032	查询算法测试 (XAUUSD,H1)	查询结果: 8
 收藏 (0) 打赏

您可以选择一种方式赞助本站

支付宝扫一扫赞助

微信钱包扫描赞助

未经允许不得转载:瓜皮猫量化编程 » mt4/mt5编程: 快速查询之二分递归查找算法
分享到: 生成海报

评论 抢沙发

  • QQ号
  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

瓜皮猫量化交易编程

QQ群: 492653640微信: guapitcom
切换注册

登录

忘记密码 ?

切换登录

注册

我们将发送一封验证邮件至你的邮箱, 请正确填写以完成账号注册和激活