【发布时间】:2018-09-04 01:22:24
【问题描述】:
对于 Ubuntu 16.04 中的以下代码
用于自定义测试用例
4 3
1 2 3 7
我的运行时间是无限的,没有输出。 (没有输出意味着'a'也没有打印在控制台上)。但是,当我评论函数调用 foo
// int temp = foo(ab, 0, n-1);
我得到输出
一个##
我错过了无限运行时间并且没有输出的原因是什么?
#include<bits/stdc++.h>
using namespace std;
int a[1000000];
int foo(int x, int f, int l)
{
int m = (f+l)/2;
while(f<=l)
{
if(a[m]==x)
return 1;
else if(a[m]<x)
f = m+1;
else if(a[m]>x)
l = m-1;
}
return 0;
}
int main()
{
int n, x;
cin >> n;
cin >> x;
int i=0;
for (i = 0; i < n; i++)
{
cin >> a[i];
}
cout<<'a';
sort(a,a+n);
for(i=0; i<n-1; i++)
{
if(a[i]==a[i+1])
{
cout << 0;
return 0;
}
}
cout<<'#';
int ab = a[i];
int temp = foo(ab, 0, n-1);
cout<<'#';
return 0;
}
【问题讨论】:
标签: c++