给出一个实数集合和一个实数,怎样判断集合中是否存在两个和等于该实数的元素
2011-08-19 23:40
821 查看
#include<iostream>
#define N 8
using namespace std;
int main()
{
float a
;
int i,j,mid,left,right,temp,temp1;
for(i=0;i<N;i++)
cin>>a[i];
for(i=1;i<N;i++)
{
temp=a[i];
left=0;
right=i-1;
while(left<=right)
{
mid=(left+right)/2;
if(temp<a[mid])
{
right=mid-1;
}
else
{
left=mid+1;
}
}
for(j=i-1;j>=left;j--)
{
a[j+1]=a[j];
}
if(left!=i)
a[left]=temp;
}
for(i=0;i<N;i++)
cout<<a[i]<<" ";
cout<<"请输入待判断的数:";
cin>>temp1;
i=0;
j=N-1;
while(i<j)
{
if(a[i]+a[j]>temp1)
j--;
else if(a[i]+a[j]<temp1)
i++;
else
{
cout<<"找到了";
cout<<a[i]<<" "<<a[j];
break;
}
}
if(i==j)
{
cout<<"未找到";
}
return 0;
}
我写的算法觉得效率不高,哪位路过的朋友能给点建议
#define N 8
using namespace std;
int main()
{
float a
;
int i,j,mid,left,right,temp,temp1;
for(i=0;i<N;i++)
cin>>a[i];
for(i=1;i<N;i++)
{
temp=a[i];
left=0;
right=i-1;
while(left<=right)
{
mid=(left+right)/2;
if(temp<a[mid])
{
right=mid-1;
}
else
{
left=mid+1;
}
}
for(j=i-1;j>=left;j--)
{
a[j+1]=a[j];
}
if(left!=i)
a[left]=temp;
}
for(i=0;i<N;i++)
cout<<a[i]<<" ";
cout<<"请输入待判断的数:";
cin>>temp1;
i=0;
j=N-1;
while(i<j)
{
if(a[i]+a[j]>temp1)
j--;
else if(a[i]+a[j]<temp1)
i++;
else
{
cout<<"找到了";
cout<<a[i]<<" "<<a[j];
break;
}
}
if(i==j)
{
cout<<"未找到";
}
return 0;
}
我写的算法觉得效率不高,哪位路过的朋友能给点建议
相关文章推荐
- 题目:请给出一个运行时间为Θ(nlgn)的算法,使之能在给定一个由n个整数构成的集合S和另一个整数x时,判断出S中是否存在有两个其和等于x的元素。
- 题目1.请给出一个运行时间为O(nlgn)的算法,使之能在给定一个由n个整数构成的集合S和另一个证书x时,判断出S中是否存在有两个其和等于x的元素。
- 描述一个运行时间为O(nlgn)的算法,使之能在给定一个由n个整数构成的集合S和另一个整数 X 时,判断出S中是否存在有两个其和刚好等于 X 的元素。
- 给出一个整数,判断集合中是否存在子集之和等于该整数?
- 判断集合S中是否存在两个其和等于x的元素
- 对于一个整数矩阵,存在一种运算,对矩阵中任意元素加一时,需要其相邻(上下左右),某一个元素也加一,现给出一正数矩阵,判断其是否能够由一个全零矩阵经过上述运算得到。
- 2.3-7 描述一个运行时间为Θ(nlgn)的算法,给定n个整数的集合S和另一个整数x,该算法能确定S中是否存在两个其和刚好为x的元素
- 对于一个整数矩阵,存在一种运算,对矩阵中任意元素加一时,需要其相邻(上下左右)某一个元素也加一, 现给出一正数矩阵,判断其是否能够由一个全零矩阵经过上述运算得到。
- 对于一个m*n的整数矩阵,其中每一行和每一列的元素都按升序排列,设计一个高效的算法判断一个数值是否存在,并给出位置
- 对于一个整数矩阵,存在一种运算,对矩阵中任意元素加一时,需要其相邻(上下左右)某一个元素也加一,现给出一正数矩阵,判断其是否能够由一个全零矩阵经过上述运算得到
- Java判断一个值,或者对象是否存在list集合中和去掉list集合中重复的元素
- 算法导论——集合S是否存在两个元素相加之和等于x
- 给定一个集合和一个正整数c,判定是否存在该集合的子集,使其所有元素的和等于给定的正整数c?
- 对于一个整数矩阵,存在一种运算,对矩阵中任意元素加一时,需要其相邻(上下左右)某一个元素也加一, 现给出一正数矩阵,判断其是否能够由一个全零矩阵经过上述运算得到。
- 算法入门---判断集合S中是否存在两个其和等于x的元素
- 对于一个整数矩阵,存在一种运算,对矩阵中任意元素加一时,需要其相邻(上下左右)某一个元素也加一, 现给出一正数矩阵,判断其是否能够由一个全零矩阵经过上述运算得到。
- 算法入门---判断集合S中是否存在两个其和等于x的元素
- 描述一个运行时间为Θ(nlgn)的算法,给定n个整数的集合S和另一个整数x,该算法能确定S中是否存在两个其和刚好为x的元素
- 算法学习笔记----判断集合S中是否存在有两个其和等于x的元素
- 对于一个整数矩阵,存在一种运算,对矩阵中任意元素加一时,需要其相邻(上下左右),某一个元素也加一,现给出一正数矩阵,判断其是否能够由一个全零矩阵经过上述运算得到。