欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

取下界的二分查找

程序员文章站 2024-03-17 19:42:52
...

-- 取下界的二分查找,未找到目标值,则取比目标值小的最近的数
-- 时间复杂度 log2n
 

function LC(a, obj)

    local max, start, end1 = -1, 1, #a
    while start <= end1 do
        local mid = math.modf(start+(end1-start)/2)
        if a[mid]>=obj then
            end1 = mid - 1
        else
            max = mid
            start = mid+1
        end
    end
    return a[max]
end

local a = {8,5,6,9,2,10,5,2,4,6}
print(LC(a, 4))

 

相关标签: lua 算法题