Notice: Undefined index: name in /usr/www/lib/views/home/viewtitle.html on line 188
-阅读程序 第 16 题
#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;
}
● 判断题
第 1 题 (1分)第16行输出ans时,ans的值一定大于i。()
第 2 题 (1分)程序输出的ans小于等于n。()
第 3 题 若将第12行的“<”改为“!=”,程序输出的结果不会改变。()
第 4 题 当程序执行到第16行时,若ans - i> 2,则a[i + 1] < a[i]。 ()
● 单选题
第 5 题 (3分)若输入的a数组是一个严格单调递增的数列, 此程序的时间复杂度()
A. $O(logn)$
B. $O(n^2)$
C. $O(nlogn)$
D. $O(n)$
第 6 题 最坏情况下,此程序的时间复杂度是()。
A. $O(n^2)$
B. $O(logn)$
C. $O(n)$
D. $O(nlogn)$

解答部分以后会开放。