#T2004. 基础算法
基础算法
- 周末小明和爸爸妈妈三个人一起想动手做三道菜。小明负责洗菜、爸爸负责切菜、妈妈负责炒菜。假设做每道菜的顺序都是:先洗菜10 分钟,然后切菜10 分钟,最后炒菜10 分钟。那么做一道菜需要30 分钟。注意:两道不同的菜的相同步骤不可以同时进行。例如第一道菜和第二道的菜不能同时洗,也不能同时切。那么做完三道菜的最短时间需要()分钟。 {{ select(1) }}
- 90
- 60
- 50
- 40
- 2017 年10 月1 日是星期日,1999 年10 月1 日是()。 {{ select(2) }}
- 星期三
- 星期日
- 星期五
- 星期二
- 下面的故事与()算法有着异曲同工之妙。从前有座山,山里有座庙,庙里有个老和尚在给小和尚讲故事:“从前有座山,山里有座庙,庙里有个老和尚在给小和尚讲故事:‘从前有座山,山里有座庙,庙里有个老和尚给小和尚讲故事……’” {{ select(3) }}
- 枚举
- 递归
- 贪心
- 分治
- ()是一种选优搜索法,按选优条件向前搜索,以达到目标。当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择。 {{ select(4) }}
- 回溯法
- 枚举法
- 动态规划
- 贪心法
- 将(2, 6, 10, 17)分别存储到某个地址区间为0~10的哈希表中,如果哈希函数h(x) = (),将不会产生冲突,其中a mod b表示a除以b的余数 {{ select(5) }}
- x mod 11
- x^2 mod 11
- (2x) mod 11
- ⌊sqrt(x) ⌋mod 11,其中⌊sqrt(x) ⌋表示sqrt(x)下取整
- ()就是把一个复杂的问题分成两个或者更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后的子问题可以简单的直接求解。而原问题的解就是子问题解的并。 {{ select(6) }}
- 动态规划
- 贪心
- 分治
- 搜索
- 给定含有n 个不同的数的数组L=<x1, x2, ..., xn>。如果L 中存在x (1 < i < n)使得x1 < x2 < ... < xi-1 < xi > xi+1 > ... > xn, 则称 L 是单峰的,并称xi 是L 的“峰顶”。现在已知L 是单峰的,请把a-c 三行代码补全到算法中使得算法正确找到L 的峰顶。
a.Search(k+1,n) b.Search(1,k-1) c.return L[k] Search(1,n) 1.k⬅⌊n/2⌋ 2.if L[k]>L[k-1] and L[k]> L[k+1] 3.then _____ 4. else if L[k]> L[k-1] and L[k] < L[k+1] 5.then____ 6.else____
正确的填空顺序是( )。 {{ select(7) }}
- c,a,b
- c,b,a
- a,b,c
- b,a,c
- 在n(n ≥ 3)枚硬币中有一枚质量不合格的硬币(质量过轻或质量过重),如果只有一架天平可以用来称重且称重的硬币数没有限制,下面是找出这枚不合格的硬币的算法。请把a-c 三行代码补全到算法中。
a.A⬅X∪Y b.A⬅Z c.n⬅|A| 算法 Coin(A,n) 1.k⬅⌊n/3⌋ 2.将A中的硬币分成X,Y,Z三个集合,使得|X|=|Y|=k,|Z|=n-2k 3. if W(X)≠W(Y) //W(X),W(Y)分别是X或Y的重量 4. then____ 5. else____ 6. ____ 7. if n>2 then goto 1 8. if n=2 then 取A中1枚硬币与拿走硬币比较,若不等则它不合格;若相等则A中剩下的硬币不合格。 9. if n=1 then A中的硬币不合格
正确的填空顺序是()。 {{ select(8) }}
- b, c, a
- c, b, a
- c, a, b
- a, b, c
- 应用快速排序的分治思想,可以实现一个求第K大数的程序。假定不考虑极端的最坏情况,理论上可以实现的最低的算法时间复杂度为()。 {{ select(9) }}
- 设有100个数据元素,采用折半搜索时,最大比较次数为()。 {{ select(10) }}
- 6
- 7
- 8
- 10
- 有一个由4000个整数构成的顺序表,假定表中的元素已经按升序排列,采用二分查找定位一个元素。则最多需要()几次比较就能确定是否存在所查找的元素: {{ select(11) }}
- 11次
- 12次
- 13次
- 14次
- 对有序数组{5, 13, 19, 21, 37, 56, 64, 75, 88,92,100}进行二分查找,成功查找元素19的查找长度(比较次数)是()。 {{ select(12) }}
- 1
- 2
- 3
- 4
- 对有序数组{5, 13, 19, 21, 37, 56, 64, 75, 88, 92, 100}进行二分查找,等概率的情况下查找成功的平均查找长度(平均比较次数)是()。 {{ select(13) }}
- 32/11
- 34/11
- 33/11
- 35/11
14.在数据压缩编码的应用中,哈夫曼(Huffman)算法是一种采用了()思想的算法。 {{ select(14) }}
- 贪心
- 分治
- 递推
- 回溯
- 将数组{8, 23, 4, 16, 77, -5, 53, 100}中的元素按从大到小的顺序排列,每次可以交换任意两个元素,最少需要交换()次。 {{ select(15) }}
- 4
- 5
- 6
- 7
- 给定一个含N 个不相同数字的数组,在最坏情况下,找出其中最大或最小的数,至少需要N - 1 次比较操作。则最坏情况下,在该数组中同时找最大与最小的数至少需要()次比较操作。(⌈ ⌉表示向上取整,⌊ ⌋表示向下取整) {{ select(16) }}
- ⌈3N / 2⌉ - 2
- ⌊3N / 2⌋ - 2
- 2N - 2
- 2N - 4
- 有正实数构成的数字三角形排列形式如图所示。
a11 a21 a22 a31 a32 a33 a41 a42 a43 a44
第一行的数为;第二行的数从左到右依次为;…第 行的数为。从开始,每一行的数 只有两条边可以分别通向下一行的两个数。用动态规划算法找出一条从a_{n1}, a_{n2}, …, a_{nn} 中某个数的路径,使得该路径上的数之和达到最大。
令是从 的路径上的数的最大和,并且=( )。 {{ select(18) }}
- max{, } +
- max{, } + 1
- max{,} +