对集合中元素,求是否存在两个元素之和大小为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(...
  • lvjing2
  • lvjing2
  • 2013年10月23日 17:05
  • 1155

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

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

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

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

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

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

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

请给出一个运行时间为O(n lgn)的算法,使之在给定一个由n个整数构成的集合S和另一个整数x时,判断出S中是否存在有两个其和等于x的元素。 思路一 :我们最容易想到的是O(n2)的算法,大致伪...

算法学习笔记----判断集合S中是否存在有两个其和等于x的元素

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

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

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

描述一个运行时间为Θ(nlgn)的算法,给定n个整数的集合S和另一个整数x,该算法能确定S中是否存在两个其和刚好为x的元素

算法思路: 首先对S[1...n]进行非降序排序,然后设置两个指向标i=1,j=n,执行下面的操作: S[i] + S[j] = X,  返回true                     ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:对集合中元素,求是否存在两个元素之和大小为X的两种做法
举报原因:
原因补充:

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