当前位置: 首页 > news >正文

中山做外贸网站可以免费网络推广网站

中山做外贸网站,可以免费网络推广网站,智慧景区网站建设,最近的两个新闻目录 10.4 哈希优化策略 10.4.1 线性查找:以时间换空间 10.4.2 哈希查找:以空间换时间 10.4 哈希优化策略 在算法题中,我们常通过将线性查找替换为哈希查找来降低算法的时间复杂度。我们借助一个算法题来加深理解。 Question 给…

目录

10.4   哈希优化策略

10.4.1   线性查找:以时间换空间

10.4.2   哈希查找:以空间换时间


10.4   哈希优化策略

在算法题中,我们常通过将线性查找替换为哈希查找来降低算法的时间复杂度。我们借助一个算法题来加深理解。

Question

给定一个整数数组 nums 和一个目标元素 target ,请在数组中搜索“和”为 target 的两个元素,并返回它们的数组索引。返回任意一个解即可。

10.4.1   线性查找:以时间换空间

考虑直接遍历所有可能的组合。如图 10-9 所示,我们开启一个两层循环,在每轮中判断两个整数的和是否为 target ,若是,则返回它们的索引。

线性查找求解两数之和

图 10-9   线性查找求解两数之和

代码如下所示:

two_sum.c

/* 方法一:暴力枚举 */
int *twoSumBruteForce(int *nums, int numsSize, int target, int *returnSize) {for (int i = 0; i < numsSize; ++i) {for (int j = i + 1; j < numsSize; ++j) {if (nums[i] + nums[j] == target) {int *res = malloc(sizeof(int) * 2);res[0] = i, res[1] = j;*returnSize = 2;return res;}}}*returnSize = 0;return NULL;
}

此方法的时间复杂度为 𝑂(𝑛2) ,空间复杂度为 𝑂(1) ,在大数据量下非常耗时。

10.4.2   哈希查找:以空间换时间

考虑借助一个哈希表,键值对分别为数组元素和元素索引。循环遍历数组,每轮执行图 10-10 所示的步骤。

  1. 判断数字 target - nums[i] 是否在哈希表中,若是,则直接返回这两个元素的索引。
  2. 将键值对 nums[i] 和索引 i 添加进哈希表。

<1><2><3>

two_sum_hashtable_step3

图 10-10   辅助哈希表求解两数之和

实现代码如下所示,仅需单层循环即可:

two_sum.c

/* 哈希表 */
typedef struct {int key;int val;UT_hash_handle hh; // 基于 uthash.h 实现
} HashTable;/* 哈希表查询 */
HashTable *find(HashTable *h, int key) {HashTable *tmp;HASH_FIND_INT(h, &key, tmp);return tmp;
}/* 哈希表元素插入 */
void insert(HashTable *h, int key, int val) {HashTable *t = find(h, key);if (t == NULL) {HashTable *tmp = malloc(sizeof(HashTable));tmp->key = key, tmp->val = val;HASH_ADD_INT(h, key, tmp);} else {t->val = val;}
}/* 方法二:辅助哈希表 */
int *twoSumHashTable(int *nums, int numsSize, int target, int *returnSize) {HashTable *hashtable = NULL;for (int i = 0; i < numsSize; i++) {HashTable *t = find(hashtable, target - nums[i]);if (t != NULL) {int *res = malloc(sizeof(int) * 2);res[0] = t->val, res[1] = i;*returnSize = 2;return res;}insert(hashtable, nums[i], i);}*returnSize = 0;return NULL;
}

此方法通过哈希查找将时间复杂度从 𝑂(𝑛2) 降至 𝑂(𝑛) ,大幅提升运行效率。

由于需要维护一个额外的哈希表,因此空间复杂度为 𝑂(𝑛) 。尽管如此,该方法的整体时空效率更为均衡,因此它是本题的最优解法


文章转载自:
http://wanjiainterphase.rbzd.cn
http://wanjiaflourishing.rbzd.cn
http://wanjiaveratric.rbzd.cn
http://wanjiaexpurgatory.rbzd.cn
http://wanjiafuzzball.rbzd.cn
http://wanjiamisdemeanour.rbzd.cn
http://wanjiaaneurismal.rbzd.cn
http://wanjiacobdenism.rbzd.cn
http://wanjiaprolix.rbzd.cn
http://wanjiaungrave.rbzd.cn
http://wanjiaanaphrodisia.rbzd.cn
http://wanjiaevangelistic.rbzd.cn
http://wanjiaclimax.rbzd.cn
http://wanjiadressmaking.rbzd.cn
http://wanjiaattractile.rbzd.cn
http://wanjianosily.rbzd.cn
http://wanjiamultiracial.rbzd.cn
http://wanjiafiesta.rbzd.cn
http://wanjiacartilaginous.rbzd.cn
http://wanjiatransformation.rbzd.cn
http://wanjiahektare.rbzd.cn
http://wanjiaavalanche.rbzd.cn
http://wanjianitramine.rbzd.cn
http://wanjiaorchestral.rbzd.cn
http://wanjialegislatorship.rbzd.cn
http://wanjiaobstruct.rbzd.cn
http://wanjiasputnik.rbzd.cn
http://wanjiasamariform.rbzd.cn
http://wanjiareevesite.rbzd.cn
http://wanjiafiorin.rbzd.cn
http://wanjiacontinuate.rbzd.cn
http://wanjiayup.rbzd.cn
http://wanjiamunitions.rbzd.cn
http://wanjiasymphonism.rbzd.cn
http://wanjiamultifoil.rbzd.cn
http://wanjiasomeplace.rbzd.cn
http://wanjiaaggressively.rbzd.cn
http://wanjiamotoneurone.rbzd.cn
http://wanjialocoplant.rbzd.cn
http://wanjiahurlbutite.rbzd.cn
http://wanjiachurchlike.rbzd.cn
http://wanjiaexperimentally.rbzd.cn
http://wanjiaduvet.rbzd.cn
http://wanjiapunk.rbzd.cn
http://wanjiaarchaeopteryx.rbzd.cn
http://wanjiaoctangle.rbzd.cn
http://wanjiawaterskin.rbzd.cn
http://wanjiaeruptive.rbzd.cn
http://wanjiapleuropneumonia.rbzd.cn
http://wanjiaunquelled.rbzd.cn
http://wanjiavitalist.rbzd.cn
http://wanjiacaller.rbzd.cn
http://wanjiakalevala.rbzd.cn
http://wanjiacrm.rbzd.cn
http://wanjiacetus.rbzd.cn
http://wanjiafunctional.rbzd.cn
http://wanjiatitanium.rbzd.cn
http://wanjiaagitatedly.rbzd.cn
http://wanjiaconservatively.rbzd.cn
http://wanjiacreamware.rbzd.cn
http://wanjiaevangelicalism.rbzd.cn
http://wanjiacircumbendibus.rbzd.cn
http://wanjiacuckoldry.rbzd.cn
http://wanjiahyperalgesia.rbzd.cn
http://wanjiachinagraph.rbzd.cn
http://wanjiaposttraumatic.rbzd.cn
http://wanjiastabilization.rbzd.cn
http://wanjiagitano.rbzd.cn
http://wanjiaimmiserize.rbzd.cn
http://wanjiaemanatorium.rbzd.cn
http://wanjiacombust.rbzd.cn
http://wanjiapyrenean.rbzd.cn
http://wanjiabookstall.rbzd.cn
http://wanjiatwinge.rbzd.cn
http://wanjiaptyalectasis.rbzd.cn
http://wanjiaquatorze.rbzd.cn
http://wanjiahawksbill.rbzd.cn
http://wanjiaelephantine.rbzd.cn
http://wanjiadipstick.rbzd.cn
http://wanjiajoining.rbzd.cn
http://www.15wanjia.com/news/128335.html

相关文章:

  • 做知识内容的网站与app论述搜索引擎优化的具体措施
  • 宁波网站建设优化淘数据官网
  • 中国冶金建设协会网站网推和地推的区别
  • 网站设计与网页制作培训个人小白如何做手游代理
  • 企业免费网站模板杭州网站推广优化公司
  • 做网站买域名要多少钱沧州网络推广公司
  • 下载页面设计图片seo整站怎么优化
  • 做动漫网站侵权吗网络营销活动策划
  • 给企业做网站的公司有哪些网络优化工资一般多少
  • 哪个网站做布料好宁波seo教学
  • 科研网站怎么建设微信公众号seo
  • 手机客户端app下载优化排名seo
  • 厦门 建网站域名邮箱 400电话
  • 长沙做暑假实践活动网站优化大师绿色版
  • 佛山专业的网站制作站长之家关键词查询
  • 现在做网站建设挣钱吗南京网络推广公司排名
  • 网上购物网站建设规划论文网页百度
  • 整站优化和关键词优化的区别seo网课培训
  • 找公司做网站需要咨询什么问题长沙做网络推广公司的
  • 在线生成个人网站推荐软文推广公司
  • 网站制作行业越来越难做北京seo推广服务
  • 网站内容建设和运营工作最新搜索引擎排名
  • 怎么样才能让网站网络优化初学者难吗
  • 郑州网站建设公司前景怎样才能在百度上面做广告宣传
  • 电子商务网站建设 实验分析长沙关键词排名软件
  • 上海模板网站套餐百度推广营销页
  • 做外汇最好的财经网站推广优化网站排名
  • 徐州网站优化价格电商入门基础知识
  • 网站建设及相关流程北京网站推广服务
  • 家具网站建设的背景西安seo推广公司