Introduction to Algorithms 3rd Edition
2.3-7
Describe a nlgn-time algorithm that, given a set S of n integers and another integer x, determines whether or not there exist two elements in S whose sum is
exactly x.
思想:将x与S各个整数相减等到新数组A,接下来的任务就是搜索S和A中是否有相同元素
解1 nlgn-时间复杂度:
(步骤1)对S排序,采用归并排序(nlgn)或二分法插入排序(nlgn);
(步骤2)采用二分法搜索(lgn)S,判断A的n个元素是否在S中存在。
解2 n-时间复杂度:
利用哈希表:
(步骤1)A和S中元素作为键值,对元素遍历,建立哈希表,遍历时,对每个键值对应存储空间加1;
(步骤2)遍历哈希表,如果存在大于1的哈希映射值,则结果为真,反之亦然。
本文介绍了一种在给定整数集合中寻找两数之和等于特定值x的有效算法。提出了两种方法:一种使用排序与二分搜索实现O(n log n)的时间复杂度;另一种通过哈希表达到O(n)的时间复杂度。
1475

被折叠的 条评论
为什么被折叠?



