1473: 算法基础(查找与排序)
Description
1. 某数列有1026个各不相同的单元,由低至高按序排列;要对该数列作二分查找(binary search),在最坏的情況下,需检查( )个单元。
A.10 B.11 C.100 D.1000
2.对有18个元素的有序表作二分查找,则查找A[3]的比较序列的下标为( )
A.1,2,3 B.9,5,2,3 C.9,5,3 D.9,4,2,3
3. 若需在O(nlog2n)的时间内完成对数组的排序,且要求排序是稳定的,则可选择的排序方法是( )。
A. 快速排序 B. 冒泡排序 C. 归并排序 D. 直接插入排序
4.对一组数据(84,47,25,15,21)排序,数据的排列次序在排序的过程中的变化为下列所示:
(1)84 47 25 15 21 (2)15 47 25 84 21 (3)15 21 25 84 47 (4)15 21 25 47 84 则采用的排序是 ( )。
A. 选择 B. 冒泡 C. 快速 D. 插入
5.一组记录的关键码为(46,79,56,38,40,84),则利用快速排序的方法,以第一个记录为基准得到的一次划分结果为( )。
A.(384046567984) B. (403846795684) C.(403846567984) D. (403846845679)
6. 己知哈希表长m=11 哈希函数H(key)=key%11 表中已有4个结点: add(24)=2; addr(47)=3;addr(26)=4; addr(60)=5; 其余地址为空。如果采用二次探测再散列处理冲突关键字为69的结点的地址是( )。
A. 1 B. 8 C. 6 D.7
Sample Input Copy
依以下样例程序,在cout后跟你选择的
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n=0;
cin>>n;
switch(n)
{
case 1: cout<<"A"<<endl; break;
case 2: cout<<"B"<<endl; break;
case 3: cout<<"C"<<endl; break;
case 4: cout<<"D"<<endl; break;
case 5: cout<<"A"<<endl; break;
case 6: cout<<"B"<<endl; break;
}
return 0;
}
Sample Output Copy