Problem6809--NOIP初赛习题--算法

6809: NOIP初赛习题--算法

[Creator : ]
Time Limit : 1.000 sec  Memory Limit : 128 MiB

Description

1.[2020-5]冒泡排序算法的伪代码如下:

输入:数组L, n k。输出:按非递减顺序排序的 L

算法 BubbleSort

       1. FLAG ← n //标记被交换的最后元素位置
       2. while FLAG > 1 do
       3・ k ← FLAG -1
       4・ FLAG ← 1
       5・ for j=1 to k do
       6.   if L(j) > L(j+1) then do
       7・    L(j)  ↔ L(j+1)
       8・    FLAG ← j

n 个数用以上冒泡排序算法进行排序,最少需要比较多少次?( )。

 A. n^2

 B. n-2

 C. n-1

 D. n

2.[2020-6]A是介个实数的数组,考虑下面的递归算法:

            XYZ (A[1..n])
            1.  if n = 1 then return A[1]
            2.   else temp ← XYZ (A[l..n-1])
            3.         if temp < A[n]
            4.         then return temp
            5.         else return A[n]

请问算法XYZ的输出是什么?()。

 A. A数组的平均

 B. A数组的最小值

 C. A数组的中值

 D. A数组的最大值

3.[2019-5]设有100个已排好序的数据元素,采用折半查找时,最大比较次数为()

 A. 7

 B. 10

 C. 6

 D. 8

4.[2018-8]以下排序算法中,不需要进行关键字比较操作的算法是( )。

 A. 基数排序

 B. 冒泡排序

 C. 堆排序

 D. 直接插入排序

5.[2017-17]设 A 和 B 是两个长为 n 的有序数组,现在需要将 A 和 B 合并成一个排好序的数组,任何以元素比较作为基本运算的归并算法在最坏情况下至少要做( )次比较。

 A. n2 

 B. n log n

 C. 2n

 D. 2n - 1

6.[2011-17]( )是一种选优搜索法,按选优条件向前搜索,以达到目标。当搜索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择。

 A. 回溯法

 B. 枚举法

 C. 动态规划

 D. 贪心

7.[2013-14]( )的 平均时间复杂度为 O(n log n),其中 n 是待排序的元素个数。

 A. 快速排序

 B. 插入排序

 C. 冒泡排序

 D. 基数排序

8.[2012-8]使用冒泡排序对序列进行升序排列,每执行一次交换操作系统将会减少1个逆序对,因此序列 5,4,3,2,1需要执行( )次操作,才能完成冒泡排序。

 A. 0

 B. 5

 C. 10

 D. 15

9.[2012-15]( )就是把一个复杂的问题分成两个或更多的相同类似的子问题,再把子问题分解成更小的子问题……直到最后的子问题可以简单地直接求解。而原问题的解就是子问题解的并。

 A. 动态规划

 B. 贪心

 C. 分治

 D. 搜索

10.[2011-12]在使用高级语言编写程序时,一般提到的“空间复杂度”中的“空间”是指( )。

 A. 程序运行时理论上所占的内存空间

 B. 程序运行时理论上所占的数组空间

 C. 程序运行时理论上所占的硬盘空间

 D. 程序源文件理论上所占的硬盘空间

Input

题号

Output

答案

HINT

//拷贝这段代码到IDE,填写各题答案,然后将整段代码提交
#include <bits/stdc++.h>
using namespace std;
string t[100];//t[i]:表示第i题的答案 
void answers()
{//将每题的答案写在等号后面的""内,如第1题选A,这一行写为 t[1] = "A";
    t[1] = ""; 
     t[2] = ""; 
      t[3] = "";
       t[4] = ""; 
        t[5] = ""; 
         t[6] = "";
          t[7] = ""; 
           t[8] = "";
            t[9] = "";
            t[10] = "";
}
int main()
{
    answers();
    int i;
    cin >> i;
    cout << t[i];
    return 0;
}

Source/Category

NOIP初赛