求助C++的题,关于数组的

来源:百度知道 编辑:UC知道 时间:2024/06/17 19:09:03
有道题,为
有100个自然数,放入一个99个元素的数组a[99],编一个C++程序,算出没有放入数组的那个数.
会的帮我解答下,谢谢

int x [ 100 ] = { 1, 3, 5, 8, .... };

int a [ 99 ] = { 1, 3, 8, 5, .... };

int i, j;

for ( i = 0; i < 100; i ++ )
{
for ( j = 0; i < 99; j ++ )
if ( x[i] != a[j] ) break;

if ( j < 99 ) break;
}

if ( i < 100 )
printf ( "x[%d](%d) is not in array a[99]\n", i, x [ i ] );

顺便请教一下楼上的,O(n) 时间复杂度的怎么做,特别是用数组怎么做

如果你要是用循环做的话这一百这数不可能放不进去的
处非你下标出问题了

O(n)的时间复杂度
O(n)的空间复杂度

或者

O(n^2)的时间复杂度
O(1)的空间复杂度

显然前者比较好

1。先排序一下,再查找,肯定提高时间复杂度,这样是nlogn级别的吧。
2。如果先hash一下,应该效果更好吧。