相关疑难解决方法(0)

优化二进制搜索算法

在二分搜索中,我们有两个比较,一个用于大于,另一个用于小于,否则是中间值.您将如何优化以便我们只需要检查一次?

bool binSearch(int array[], int key, int left, int right)
{

    mid = left + (right-left)/2;
    if (key < array[mid])
        return binSearch(array, key, left, mid-1);
    else if (key > array[mid])
        return binSearch(array, key, mid+1, right);
    else if (key == array[mid])
        return TRUE; // Found

    return FALSE; // Not Found
}
Run Code Online (Sandbox Code Playgroud)

c algorithm binary micro-optimization

4
推荐指数
3
解决办法
1万
查看次数

关于减少分支未命中预测

我在一篇论文中看到了一句话:"将分支转换为数据依赖关系以避免错误预测的分支".(第6页)

我想知道如何将代码从分支更改为数据依赖项.

这是一篇论文:http://www.adms-conf.org/p1-SCHLEGEL.pdf

更新:如何在二进制搜索中转换分支?

algorithm optimization

4
推荐指数
1
解决办法
877
查看次数

标签 统计

algorithm ×2

binary ×1

c ×1

micro-optimization ×1

optimization ×1