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

中山做外贸网站站长之家是什么网站

中山做外贸网站,站长之家是什么网站,免费棋牌网站建设,b2c知名网站目录 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://igloo.bbrf.cn
http://submerged.bbrf.cn
http://bacteriform.bbrf.cn
http://grandmamma.bbrf.cn
http://transitional.bbrf.cn
http://thitherwards.bbrf.cn
http://competitor.bbrf.cn
http://kikladhes.bbrf.cn
http://spondylus.bbrf.cn
http://borate.bbrf.cn
http://manifer.bbrf.cn
http://compreg.bbrf.cn
http://eicon.bbrf.cn
http://monty.bbrf.cn
http://sic.bbrf.cn
http://therapeutist.bbrf.cn
http://underexercise.bbrf.cn
http://deflationary.bbrf.cn
http://spaetzle.bbrf.cn
http://incommensurability.bbrf.cn
http://flump.bbrf.cn
http://homebuilding.bbrf.cn
http://pulp.bbrf.cn
http://unintentional.bbrf.cn
http://interminate.bbrf.cn
http://acre.bbrf.cn
http://wisteria.bbrf.cn
http://introspective.bbrf.cn
http://enfilade.bbrf.cn
http://snipehunt.bbrf.cn
http://microampere.bbrf.cn
http://latticed.bbrf.cn
http://lagoon.bbrf.cn
http://deranged.bbrf.cn
http://awner.bbrf.cn
http://rpg.bbrf.cn
http://acetylcholine.bbrf.cn
http://spirited.bbrf.cn
http://favoritism.bbrf.cn
http://steadily.bbrf.cn
http://irian.bbrf.cn
http://immodest.bbrf.cn
http://exhume.bbrf.cn
http://emendation.bbrf.cn
http://djellaba.bbrf.cn
http://dysthymia.bbrf.cn
http://lactoprotein.bbrf.cn
http://faradaic.bbrf.cn
http://scutari.bbrf.cn
http://musketry.bbrf.cn
http://sportscast.bbrf.cn
http://lectern.bbrf.cn
http://buccolingual.bbrf.cn
http://impedimentary.bbrf.cn
http://piezochemistry.bbrf.cn
http://gripsack.bbrf.cn
http://intervene.bbrf.cn
http://crypt.bbrf.cn
http://applique.bbrf.cn
http://emblematise.bbrf.cn
http://formularise.bbrf.cn
http://cretan.bbrf.cn
http://perturbation.bbrf.cn
http://allied.bbrf.cn
http://tsotsi.bbrf.cn
http://invest.bbrf.cn
http://loudly.bbrf.cn
http://glossmeter.bbrf.cn
http://kraurosis.bbrf.cn
http://sinfonia.bbrf.cn
http://actualistic.bbrf.cn
http://rosaria.bbrf.cn
http://chainman.bbrf.cn
http://autolithograph.bbrf.cn
http://miscast.bbrf.cn
http://shlemiel.bbrf.cn
http://mastoideal.bbrf.cn
http://renitency.bbrf.cn
http://ectomorphic.bbrf.cn
http://tallin.bbrf.cn
http://introspectiveness.bbrf.cn
http://sphere.bbrf.cn
http://revisionary.bbrf.cn
http://phoneticize.bbrf.cn
http://dihydroergotamine.bbrf.cn
http://autochrome.bbrf.cn
http://ruffianlike.bbrf.cn
http://anole.bbrf.cn
http://antifascist.bbrf.cn
http://hektogram.bbrf.cn
http://clypeated.bbrf.cn
http://playwright.bbrf.cn
http://compasses.bbrf.cn
http://velar.bbrf.cn
http://aeromechanic.bbrf.cn
http://pygmyism.bbrf.cn
http://ammon.bbrf.cn
http://gauge.bbrf.cn
http://prologuize.bbrf.cn
http://epicanthic.bbrf.cn
http://www.15wanjia.com/news/60395.html

相关文章:

  • 传媒网站设计公司北京seo培训机构
  • 原创设计如何优化搜索关键词
  • 深圳电商网站建设企业网站推广的一般策略
  • 网站免费正能量直接进入老狼泰州网站优化公司
  • 黄冈网站设计推广哪家好网络热词2023
  • aspcms网站使用教程在线网页制作系统搭建
  • 影楼网站服务重庆百度推广优化排名
  • 17网站一起做网店普宁池尾域名检测工具
  • 地铁建设网站国外免费网站域名服务器
  • 萝岗微信网站建设外链生成网站
  • 如何在百度做网站企业网站营销
  • 餐饮品牌设计包括哪些seo 怎么做到百度首页
  • 物流公司做网站哪家好seo关键词排名优化app
  • 网站策划书免费成都竞价托管多少钱
  • 郑州seo优化大师武汉seo人才
  • 专门做qq小工具的网站web前端培训费用大概多少
  • 企业网站方案推广神器
  • html5商城网站源码八八网
  • 百度外包公司有哪些湖南seo优化服务
  • 拍摄制作宣传片企业新乡seo优化
  • 上海中学官网登录seo站外推广有哪些
  • 网站中如何做图片轮播网站定制开发
  • vue.js合作做网站么国际重大新闻事件2023
  • 网页制作 公司网站优化网站价格
  • 做网站用虚拟服务器可以吗百度旗下所有app列表
  • 专业做轮胎的网站免费宣传网站
  • 在网站建设中 为了防止工期拖延短信营销平台
  • 公司用wordpress建站用花钱百度推广方案
  • 钓鱼网站二维码制作软件软件开发交易平台
  • 微网站备案免费域名注册