algorithm - 如何使用二分查找查找数组中的第一个非空元素?

标签 algorithm binary-search

假设我有一个连续数据和连续空值的数组,例如:

0、3、1、2、空、空、空

如何使用二分查找思想找到第一个空元素的索引?

最佳答案

与常规二分搜索相同,仅将 NULL 视为无穷大(max int),将其他所有内容视为值 0。这样数组看起来像

0, 0, 0, 0, MAX_INT, MAX_INT, MAX_INT

此时对第一个 MAX_INT 运行正常的二分搜索

关于algorithm - 如何使用二分查找查找数组中的第一个非空元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16623354/

相关文章:

list - 类型错误:列表索引必须是整数,而不是 float

python - Python中二叉树实现的错误

algorithm - 算法的时间复杂度

java - 让 Collections.binarySearch() 与 CompareToIgnoreCase 一起使用?

c++ - 第一个元素的索引 > 到具有 STL::algorithm 的 vector 中的数字?

javascript - 从一组约会中获取重叠时间范围的列表

java - 使用文本更改同步将一组间隔映射到 2D 文本缓冲区

erlang - 在 Erlang 中实现高效的二分查找

algorithm - 为什么朴素素性测试算法不是多项式

algorithm - 具有相关性的流网络