一个运行时间为nlgn的算法,能判断在集合S中是否有两数之和为x
2014-07-20 16:31
435 查看
先用归并排序对集合S中的整数进行排序,接着再用下面的子过程进行判断:
bool Func(int Array[], int first, int last, int x)
{
while (first < last)
{
if (Array[first] + Array[last] < x)
{
++first;
}
else
{
if (Array[first] + Array[last] > x)
{
--last;
}
else
{
return true;
}
}
}
return false;
}
显然判断过程的时间复杂度为n,结合归并排序的时间复杂度,容易得出整个算法满足题意的要求.
相关文章推荐
- 题目1.请给出一个运行时间为O(nlgn)的算法,使之能在给定一个由n个整数构成的集合S和另一个证书x时,判断出S中是否存在有两个其和等于x的元素。
- 描述一个运行时间为O(nlgn)的算法,使之能在给定一个由n个整数构成的集合S和另一个整数 X 时,判断出S中是否存在有两个其和刚好等于 X 的元素。
- 题目:请给出一个运行时间为Θ(nlgn)的算法,使之能在给定一个由n个整数构成的集合S和另一个整数x时,判断出S中是否存在有两个其和等于x的元素。
- 2.3-7 描述一个运行时间为Θ(nlgn)的算法,给定n个整数的集合S和另一个整数x,该算法能确定S中是否存在两个其和刚好为x的元素
- 描述一个运行时间为Θ(nlgn)的算法,给定n个整数的集合S和另一个整数x,该算法能确定S中是否存在两个其和刚好为x的元素
- 判断一个整数数组中是否有重复数字出现的O(n)时间复杂度算法
- 一个算法:关于如何判断两个时间是否在允许误差内相等
- 题目2.给出一个算法,它能用O(nlgn)的最坏情况运行时间,确定n个元素的任何排列中逆序对的数目
- objective-c判断点是否在多边形内(包括在多边形上)的一个经典算法
- 如何用命令行去Disable一个计划任务?带如何判断这个计划任务是否正在运行?必须是不在运行时才能Disable它。
- 今天写了一个很简单的判断平面坐标系两线段是否相交的算法
- Android判断一个Service是否运行 对服务的判断
- 判断一个数是否是循环数的算法
- 通过脚本判断一个程序是否在运行
- 算法入门---判断集合S中是否存在两个其和等于x的元素
- java判断一个程序是否已经运行
- 设计一个算法判断一个字符串是否是回文
- 请教一个算法问题,有两个数组A,B,判断A中是否至少有一个元素和B中元素相同
- 判断任意位数的一个数是否为Armstrong数的算法
- 判断一个数是否是素数的两种算法