对集合中元素,求是否存在两个元素之和大小为X的两种做法

原创 2008年07月29日 23:12:00

 

一、二分法

 步骤:

1、将集合元素拷贝到数组A(在这里假设集合元素非随机存储)

2、对A进行排序

3、遍历A[1..N-1],对A[i+1..N]元素进行二分查找,查找元素为X-A[i]

 

二、哈希法

步骤

1、初始化哈希表为空

2、遍历A[1..N],对于A[i],在哈希表中查找是否存在X-A[i],若否,将A[i]加入哈希,若是,返回TRUE

 

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

判断序列中是否存在两个元素之和为x,时间复杂度O(nlgn),算法导论练习2.3,linux纯C实现

#include #include bool binarySearch(int* a, int L, int N) { int fI = 0, lI = L-1, mI = 0; while(...

javascript 005 基于原型链实现类 数组去重,排序,根据值删除数组中元素,查某个值在数组中的索引,根据值,判断数组中是否有该值的元素

数组去重,排序function distinctAry(ary){ var obj={}; for(var i=0;i<ary.length;i++){ var cur...

题目:请给出一个运行时间为Θ(nlgn)的算法,使之能在给定一个由n个整数构成的集合S和另一个整数x时,判断出S中是否存在有两个其和等于x的元素。

解题思路:     直观的方法是直接计算集合中两两元素的和,然后判断是否存在x,但时间复杂度为Θ(n^2),不符合题目的要求,也不是一个好的解决问题的方法,下面两种方法要好一些:     第一种是《算...

算法入门---判断集合S中是否存在两个其和等于x的元素

请给出一个运行时间为O(n lgn)的算法,使之在给定一个由n个整数构成的集合S和另一个整数x时,判断出S中是否存在有两个其和等于x的元素 算法习题 O(nlgn) 归并排序

确定集合中是否存在两个其和刚好为X的元素?

《算法导论》第三版 P22,2.3-7练习题list1 = [1,2,3,4,5,6,7,8,10,19]; count = len(list1); stack4 = [] stack2 = []de...

二分查找法及判断一个数组中是否有两个元素之和为指定值

请给出一个运行时间为O(nlgn)的算法,使之能在给定一个由n个整数构成的集合里快速判断是否存在两个元素,其和等于某一指定值key。   方法一:  思路: 1.对数组进行归并排序或快速排序,...

算法10:给一个array和一个target value, 检查array里是否存在两个数之和为target

题目分析这道算法题存在两种情况,数组中是否存在相同的值 1、给定一个整型数组,找出其中的两个数使其和等于指定的值,并返回两个数的数组下标(假定是无序数组,数组元素各不相同) 2、给定一个整型数组,...
  • pplin
  • pplin
  • 2017-03-15 19:04
  • 266
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)