2019年CSP-S1提高组初赛阅读程序题:
#include <cstdio> using namespace std; int n; int a[100]; int main() { scanf("%d", &n); for (int i = 1; i <= n; ++i) scanf("%d", &a[i]); int ans = 1; for (int i = 1; i <= n; ++i) { if (i > 1 && a[i] < a[i - 1]) ans = i; while (ans < n && a[i] >= a[ans + 1]) ++ans; printf("%d\n", ans); } return 0; }
第16行输出ans时,ans的值一定大于i。( )
程序输出的ans小于等于n。( )
若将第12行的“<”改为“!=”,程序输出的结果不会改变。( )
当程序执行到第16行时,若ans-i>2,则a[i+1]≦a[i]。( )
若输入的a数组是一个严格单调递增的数列,此程序的时间复杂度是( )。
0(log n)
0(n2)
0(nlog n)
0(n)
最坏情况下,此程序的时间复杂度是( )。
0(n2)
0(log n)
0(n)
0(nlog n)