第一题(NOIP2008)
#include<iostream>
using namespace std;
void func(int ary[], int n) {
int i = 0, j, x;
j = n - 1;
while (i < j) {
while (i < j && ary[i] > 0) i++;
while (i < j && ary[j] < 0) j--;
if (i < j) {
x = ary[i];
ary[i++] = ary[j];
ary[j--] = x;
}
}
}
int main() {
int a[20], i, m;
m = 10;
for (i = 0; i < m; i++) {
cin >> a[i];
}
func(a, m);
for (i = 0; i < m; i++)
cout << a[i] << " ";
cout << endl;
return 0;
}
- 【判断题】将第13行的
ary[i++]=ary[j]改为ary[++i]=ary[j],程序输出结果不变。
{{ select(1) }}
- 【判断题】输入
54 -6 -11 6 -59 22 -6 11 0,输出结果为54 10 16 22 -59 -11 -6 -6。
{{ select(2) }}
- 【判断题】将func函数中的所有变量
n全部改成a,程序能通过编译且输出结果不变。
{{ select(3) }}
- 【选择题】该代码的时间复杂度为( )。
{{ select(4) }}
- A. O(nlogn)
- B. O(n²)
- C. O(n)
- D. O(logn)