1016: 查找与排序_挑战赛

Memory Limit:128 MB Time Limit:1.000 S
Judge Style:Text Compare Creator:
Submit:14 Solved:0

Description

注意:请将答案写在最后的答题区对应的方格内。本赛满分 20 分。
一、选择题(共 6 题,单选,每题 1 分,共 6 分)
1. 第一台电子计算机的名字是( ):
(A) ENIAC    (B) IBM 701    (C) ABC    (D) Mark I

2. 完整的计算机系统由( )组成。
(A) 硬件系统和软件系统    (B) 主机和外部设备    (C) 运算器、控制器、存储器、输入设备和输出设备    (D) 主机箱、显示器、键盘、鼠标、打印机

3. 以下软件中,( )不是操作系统软件。
(A) Windows 10     (B) Linux    (C) 鸿蒙    (D) Microsoft Office

4. 冒泡排序和快速排序的时间复杂度分别是( )。
(A) O(n)O(nlogn)    (B) O(n2)O(nlogn)    (C) O(n2)O(n)    (D) O(n logn),O(n2)

5. 十进制数 27 对应的二进制数为( )。
(A) 1011    (B) 1100    (C) 10111    (D) 11011

6. 100 个数字使用二分查找,最多需要比较( )次。
(A) 7    (B) 8    (C) 9    (D) 99

二、程序填空(共 2 题,每个空格 2 分,共 14 分)
1. 设计一个查找算法,这个算法从长度为 N 的数组 nums 当中查找一个数字 t。已知 nums已经按照从小到大升序排列,要求返回在 nums 数组当中第一个不小于 t 的数字的下标,
     如果数组当中所有数字均小于 t,则返回 N。(也就是说,如果数组当中存在数值等于 t,则返回第一个的下标;如果不存在数值 t,那么返回第一个数值是大于 t 的数的下标)。
     以下函数有三个参数,分别是一个数组 nums,当前长度 n 和需要查找的数字 t。

根据上述程序,选择正确的代码填入空格。


2. 设计一个排序算法,基本思路是,逐一读取输入的数字,将他们放在 nums 数组当中,每次得到一个新的数字就把这个数字插入到正确的位置。由于你十分聪明因此你立刻想到了可以使用上面一题已经完成的 binary_search 里实现部分功能,这样将大大缩短你写代码的时间。请完善下面的程序,binary_search 上一题中已经有的查找算法。


根据上述程序,选择正确的代码填入空格。


Input


Output


Sample Input Copy


Sample Output Copy


HINT