首页 > 其他 > 详细

哈希查找对比普通遍历查找所需时间

时间:2019-11-17 17:02:11      阅读:82      评论:0      收藏:0      [点我收藏+]

  今天接触到了哈希算法。处于好奇心,我写了一段python代码来对比这两种查找方式在进行随机大规模查找时的效率差异。

  

import time
import random
a=[12,234,345,67,7,88,834,4353,56,324,123,567,53,45,234,123,123]  
hashList={}   #哈希表

def r():    #生成一个随机被查找值,用来模拟随机查找
    r=random.randint(0,16)
    n=a[r]
    return n

def find(num):    #普通遍历查找
    for l in a:
        if(num==l):
            continue
            

def getHash():    #生成哈希表
    for l in a:
        key=(l*5+3)^2
        hashList[key]=l

def hashfind(num):    #哈希查找
    key=(num*5+3)^2
    return

normalTime=0
hashTime=0
t1=time.time()   #计算生成哈希表需要时间   T2-T1
getHash()
t2=time.time()  

for l in range(2000000):      #进行二百万次模拟
    n=r()
    start=time.time()
    find(n)
    end=time.time()
    nt=end-start
    normalTime=normalTime+nt    #普通遍历查找总时间

    start1=time.time()
    hashfind(n)
    end1=time.time()
    nt1=end1-start1
    hashTime=hashTime+nt1        #哈希查找总时间

print(普通查找二百万次需要时间:+str(normalTime))
print(hash查找二百万次需要时间:+str(hashTime+t2-t1))     
           

最后的结果当然是哈希查找所需的时间更少。基本遍历查找所需时间是哈希查找所需时间的三倍左右。

以上代码或结论如有错误,欢迎指出。

哈希查找对比普通遍历查找所需时间

原文:https://www.cnblogs.com/BreezeFeng/p/11876873.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!