#CS40308. 阅读程序3-枚举算法8

阅读程序3-枚举算法8

阅读程序

注意:切勿用电脑直接运行代码得出答案,请用大脑+笔+纸运行代码答题,否则是在浪费你的时间。

第3节:枚举算法

第8题【NOIP】2012

#include <iostream>
using namespace std;
int n, i, temp, sum, a[100];
int main() {
	cin >> n;
	for (i = 1; i <= n; i++)
		cin >> a[i];
	for (i = 1; i <= n - 1; i++)
		if (a[i] > a[i + 1]) {
10			temp = a[i];
11			a[i] = a[i + 1];
12			a[i + 1] = temp;
		}
14	for (i = n; i >= 2; i--)
15		if (a[i] < a[i - 1]) {
16			temp = a[i];
17			a[i] = a[i - 1];
18			a[i - 1] = temp;
19		}
	sum = 0;
	for (i = 2; i <= n - 1; i++)
		sum +  = a[i];
	cout << sum / (n - 2) << endl;
	return 0;
}

●判断题 (1)输入的n小于100,否则可能会出现运行时错误。

{{ select(8-1) }}

(2)第10行到第12行实现了交换的功能。

{{ select(8-2) }}

(3)把sum的数据类型改为double,程序运行结果不会改变。

{{ select(8-3) }}

(4)当n为2时,程序可以正常运行。

{{ select(8-4) }}

●选择题 (5)程序的时间复杂度为( )。

{{ select(8-5) }}

  • O(1)
  • O(nlogn)
  • O(n)
  • O(n²)

(6)14~19行的代码段功能为( )。

{{ select(8-6) }}

  • 排序整个序列
  • 把序列中的最小值放到序列开头
  • 把序列中的最小值放到序列末尾
  • 把序列中的最大值放到序列末尾