«

数据指纹检测

时间:2014-7-5     作者:SES雪蓝     分类: 关于LUA的一些事


在一个项目中,需要用广度优先,找出最少步数的解法,其中涉及到了数据的指纹检测(通过验证地图的指纹来判断是否走过这一步),一开始是这样考虑的:

hash[#hash+1]=hashValue--储存指纹的过程

function M.HashExist(hash_value)
    for k,v in pairs(hash) do
        if v==hash_value then
            return true
        end
    end
    return false
end

 简单说明一下,上面的hash 就是储存地图指纹的table,上面的函数就是判断hash_value这个指纹是否已经存在。

后来改成了这样:

hash[hashValue]=1--储存指纹的过程

function M.HashExist(hash_value)
    return hash[hash_value]
end

经过对比,速度提升了不少