哈希游戏- 哈希游戏平台- 哈希游戏官方网站
是不是把第一个算法改进一下,改成逐个比较字符串的Hash值就可以了呢,答案是,远远不够,要想得到最快的算法,就不能进行逐个的比较,通常是构造一个哈希表(Hash Table)来解决问题,哈希表是一个大数组,这个数组的容量根据程序的要求来定义,例如1024,每一个Hash值通过取模运算 (mod)对应到数组中的一个位置,这样,只要比较这个字符串的哈希值对应的位置又没有被占用,就可以得到最后的结果了,想想这是什么速度?是的,是最快的O(1),现在仔细看看这个算法吧
如果把这些模型包通过文件名hash运算得出来一个数字,比如20,放到同一个数组array的这个数字的位置array[20],那么以后要读取这个模型包,仅用知道文件名,通过hash运算得出同样的数字20,那么你可以直接去取数组array的这个数字位置就好了array[20]。那么你只用了一个hash运算,这个运算所花费的时间是一定的,要比不知道做多少次文件名比较花的时间短多了,取址当然是很快的,那么你游戏画面载入时间就不会很长,也比较稳定.