-- 二分法查找
function ClientTestPage:binarySearch( value, t )
local d = {} -- 默认数组,请使用(t),请注意数组必须为有序数组,不支持hash表查询
for i = 1, 100 do
d[i] = i
end
local minIndex = 1 -- 数组最小下标,lua默认从1开始
local maxIndex = #d -- 数组最大下标
local num = 1 -- 要查找的值,请使用(value)
while true do
local index = math.floor( ( minIndex + maxIndex ) /2) -- 计算数组中间元素下标
if num == d[index] then
return d[index]
elseif num < d[index] then
maxIndex = index - 1
else
minIndex = index + 1
end
end
return nil
end