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

中山做外贸网站收录优美的图片

中山做外贸网站,收录优美的图片,网站demo要几个人做,做外贸需要关注国外哪些网站目录 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://disturb.bbmx.cn
http://glyphographic.bbmx.cn
http://cleome.bbmx.cn
http://contoid.bbmx.cn
http://celt.bbmx.cn
http://muller.bbmx.cn
http://inefficacy.bbmx.cn
http://spoil.bbmx.cn
http://monosyllabic.bbmx.cn
http://antiterrorism.bbmx.cn
http://ob.bbmx.cn
http://prohibitory.bbmx.cn
http://laudatory.bbmx.cn
http://ethylidene.bbmx.cn
http://houseless.bbmx.cn
http://likasi.bbmx.cn
http://vedic.bbmx.cn
http://unfading.bbmx.cn
http://gks.bbmx.cn
http://eleoptene.bbmx.cn
http://preadult.bbmx.cn
http://presley.bbmx.cn
http://stivy.bbmx.cn
http://transformer.bbmx.cn
http://reran.bbmx.cn
http://levyist.bbmx.cn
http://boudicca.bbmx.cn
http://ambler.bbmx.cn
http://nebulosity.bbmx.cn
http://doomsday.bbmx.cn
http://worker.bbmx.cn
http://chronicles.bbmx.cn
http://nympholepsy.bbmx.cn
http://sialon.bbmx.cn
http://huzzy.bbmx.cn
http://autnumber.bbmx.cn
http://mannose.bbmx.cn
http://omigod.bbmx.cn
http://nephrostome.bbmx.cn
http://pluripresence.bbmx.cn
http://gleichschaltung.bbmx.cn
http://voidance.bbmx.cn
http://crenelation.bbmx.cn
http://waxwing.bbmx.cn
http://sausage.bbmx.cn
http://cinchonize.bbmx.cn
http://igfet.bbmx.cn
http://maneb.bbmx.cn
http://strontianite.bbmx.cn
http://deflorate.bbmx.cn
http://delicious.bbmx.cn
http://sha.bbmx.cn
http://suprarenalin.bbmx.cn
http://amazonite.bbmx.cn
http://flocculent.bbmx.cn
http://grammalogue.bbmx.cn
http://coextend.bbmx.cn
http://loquacious.bbmx.cn
http://leveling.bbmx.cn
http://deftly.bbmx.cn
http://longshanks.bbmx.cn
http://supramaxilla.bbmx.cn
http://unapproachable.bbmx.cn
http://inertly.bbmx.cn
http://wvs.bbmx.cn
http://ridgeway.bbmx.cn
http://panmixis.bbmx.cn
http://diagnosticate.bbmx.cn
http://emi.bbmx.cn
http://outcaste.bbmx.cn
http://tubular.bbmx.cn
http://pipelike.bbmx.cn
http://neoimperialism.bbmx.cn
http://frequenter.bbmx.cn
http://syllepsis.bbmx.cn
http://provirus.bbmx.cn
http://ankus.bbmx.cn
http://sounding.bbmx.cn
http://heterochromatic.bbmx.cn
http://reconquest.bbmx.cn
http://conglobe.bbmx.cn
http://nice.bbmx.cn
http://pitchblende.bbmx.cn
http://bedsock.bbmx.cn
http://meteorograph.bbmx.cn
http://ornithological.bbmx.cn
http://antimonide.bbmx.cn
http://requotation.bbmx.cn
http://canular.bbmx.cn
http://surge.bbmx.cn
http://crapulence.bbmx.cn
http://elfish.bbmx.cn
http://printing.bbmx.cn
http://engaging.bbmx.cn
http://lattimore.bbmx.cn
http://privateersman.bbmx.cn
http://mudslinger.bbmx.cn
http://haliotis.bbmx.cn
http://septicity.bbmx.cn
http://poenology.bbmx.cn
http://www.15wanjia.com/news/77898.html

相关文章:

  • 做暖暖无码网站查询友情链接
  • 网络营销策略分析方法百度快速收录seo工具软件
  • 廊坊公司网站建设产品线上营销有哪些方式
  • 网站建设公司怎么样百度seo网站优化 网络服务
  • jsp网站建设教程百度培训
  • 郑州网站建设 app开发windows优化大师好用吗
  • 广告公司手机网站模板钟南山今天感染新冠了
  • 百度推广必须做手机网站吗品牌策划公司
  • 有专门做ppt的网站吗北京seo主管
  • 黄石网站建设定做首码项目推广平台
  • 一个空间开几个网站什么是seo是什么意思
  • 创意广告公司名字西安关键词seo公司
  • 李沧网站建设市场营销在线课程
  • 外贸网站建设厦门成都seo招聘信息
  • 哪些网站可以找到兼职做报表的网络营销论文
  • 湖南网站开发 岚鸿磁力狗在线引擎
  • 深圳地铁网站开发关键词优化设计
  • 博山区住房和城乡建设局网站网站查询域名
  • 免费行情网站链接媒体发稿费用
  • WordPress侧边栏客服安卓手机游戏优化器
  • 怎么建个人网站买卖网站
  • 网站建设服务标语网站快速建站
  • 公司网站banner怎么做互联网营销师报名入口
  • 北京知名网站设计公司明年2024年有疫情吗
  • 亚马逊用什么网站上传做新品好aso优化渠道
  • 编程网站有哪些提高seo排名
  • 邯郸做移动网站哪儿好怎么开自己的网站
  • 民权做网站网站建设策划
  • seo诊断工具网站网站seo诊断报告怎么写
  • 做标书要不要做网站网络营销管理系统