码迷,mamicode.com
首页 > 其他好文 > 详细

哈希表减少时间复杂度

时间:2021-07-08 17:45:36      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:++   原因   为什么   数组   printf   ash   枚举   ==   color   

哈希表是可以减少时间复杂度的。

因为哈希表物理结构是数组,在没有冲突的情况下,查找时间是O(1),建表时间可能是O(n)。

为什么把普通数组换成hash表就能减少复杂的呢

例如

//数组形式
for(int i=0;i<n;++i)
    for(int j=0; j<n;++j)
           printf ( num[i]==num[j]);

//hash表
map<int,int> mp;
for(int i=0;i<n;++i){
    printf( mp.count( num[i]);
    ++mp[num[i]];
    }
 
    

第一个是双重循环 复杂的 O(n^2) 

第二个复杂度是 O(n)

原因在于    hash表可以用关键字查找个数,数组需要按存储顺序枚举比较 

 

哈希表减少时间复杂度

标签:++   原因   为什么   数组   printf   ash   枚举   ==   color   

原文地址:https://www.cnblogs.com/fdbwymz/p/14985718.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!