单选错题整理(01)

单选错题整理(01)

1.对于长度为n的线性表,建立其对应的单链表的时间复杂度为()。
A.O(1)
B.O(log2n)
C.O(n)
D.O(n^2)
正确答案: C   你的答案: D (错误)
**解析**:使用头插式或尾插式创建链表都只需要一次循环遍历就可实现,所以时间复杂度为O(n)
2.若元素a、b、c、d、e、f依次进栈,允许进栈、退栈操作交替进行,但不允许连续三次进行退栈操作,则不可能得到的出栈序列是()。
A.d c e b f a
B.c b d a e f
C.b c a e f d
D.a f e d c b
正确答案: D   你的答案: C (错误)
**解析:**选项A可由in、in、in、in、out、out、in、out、out、in、out、out得到;
         选项B可由in、in、in、out、out、in、out、out、in、out、in、out得到;
         选项C可由in、in、out、in、out、out、in、in、out、in、out、out得到;
         选项D可由in、out、in、in、in、in、in、out、out、out、out、out得到;
3.下列关于队列的叙述中正确的是()
A.在队列中只能插入数据
B.在队列中只能删除数据
C.队列是先进先出的线性表
D.队列是先进后出的线性表
正确答案: C   你的答案: D (错误)
**解析:**队列是先进先出的线性表,栈是先进后出的线性表
4.数据库使用读写分离最主要的目的是()
A.应对读多写少的场景
B.少X锁与S锁的竞争
c.及时备份数据
D.水平或垂直拆分数据库
正确答案: B   你的答案: C (错误)
**解析:**提高性能,提高系统的吞吐量
5.假设把整数关键字K Hash到有N个槽的散列表,以下哪些散列函数比较合适()
A.H(K)=k/N
B.H(k)=k mod N
C.H(k)=1
D.H(k)=(k+Random(N))mod N,其中Random(N)返回0到N-1的整数
正确答案: B   你的答案: D (错误)
**解析:**
D是错误的,Random(N)返回0-N的整数,在查找的时候会出现问题,再次使用Random(N)不一定和上次存储产生的数字一样,这样子就会发生找不到的情况。
6.用 KMP 算法在一长度为N 的字符串中寻找长度为 M 的子字符串的时间复杂度为()
A.O(N + M)
B.O(N * (M^2))
C.O(N * M)
D.O(N * log(M))
正确答案: A   你的答案: B (错误)
**解析:**O(N),匹配到后变成O(N+M)
7.高度为1的平衡二叉树节点为1个,高度为5的最少多少个?
A.10
B.11
C.12
D.13
正确答案: C   你的答案: A (错误)
**解析:**
平衡二叉树是一 棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。 
高度为5的话, 根的左子树高4, 右子树高3
经推倒可以得出,高度与最小节点数对应关系是:
1 -> 1
2 -> 2
3 -> 4
4 -> 7
5 -> 12

在这里插入图片描述

8.将N条长度均为M的有序链表进行合并,合并以后的链表也保持有序,时间复杂度为()?
A.O(N * M * logN)
B.O(N*M)
C.O(N)
D.O(M)
正确答案: A   你的答案: B (错误)
**解析:**
其实算法不同结果也不一样。
1、两两合并链表。合并链表复杂度 * 一次合并次数 * 所有合并次数。两两合并的复杂度会指数递增,合并数会指数递减。一共应该是log(N)次。前面的合并复杂度较高。所以一般不采用该方法来合并链表。
2、利用堆来合并,( O(N) + O(log N * N )) * M。
  先利用最链表第一个数,N个数建立堆,复杂度 O (N)
  重构堆,并排序,复杂度 O(logN * N )
  每个链表M个数,上述两步重复M次。结果为
  M *O(N) + O(logN * N)= O (M * N * logN)
9.某打车公司将驾驶里程(drivedistanced)超过5000里的司机信息转移到一张称为seniordrivers 的表中,他们的详细情况被记录在表drivers 中,正确的sql为()
A.insert into seniordrivers
drivedistanced>=5000 from drivers where
B.insert seniordrivers (drivedistanced) values from drivers where drivedistanced>=5000
C.insert into seniordrivers
(drivedistanced)values>=5000 from drivers where
D.select * into seniordrivers from drivers where drivedistanced >=5000
正确答案: D   你的答案: C (错误)
**解析:**

在这里插入图片描述

10.关于访问权限说法正确 的是 ? ( )
A.外部类前面可以修饰public,protected和private
B.成员内部类前面可以修饰public,protected和private
C.局部内部类前面可以修饰public,protected和private
D.以上说法都不正确
正确答案: B   你的答案: C (错误)
**解析:**
1.类指外部类,最大的类,修饰符有public(表示该类在项目所有类中可以被导入),default(该类只能在同一个package中使用),abstract,final
2.内部类指位于类内部但不包括位于块、构造器、方法内,且有名称的类,修饰符有public,private,protected访问控制符,也可以用static,final关键字修饰,public和private比较简单,一个表示所有可以被所有类访问,一个表示只能被自身访问,protected修饰的成员类可以被同一个包中的类和子类访问。而default修饰的成员类只能被同一个包中的类访问。
3.局部内部类指位于块、构造器、方法内的有名称类,最多只能有final修饰
11.对于工资表结构如下(员工编号,姓名,部门,工资),如果要对查询的结果按照部门升序与工资降序进行排序,则下列排序正确的是()
A.order by部门,工资
B.order by部门,工资desc
C.order by部门 asc,工资desc
D.order by部门desc,工资desc
正确答案: B C   你的答案: B D (错误)
**解析:**
desc降序,asc升序,默认是asc(升序),所以就是B C了
12.下列哪两个数据结构,同时具有较高的查找和删除性能?()
A.有序数组
B.有序链表
C.AVL树
D.Hash表
正确答案: C D   你的答案: B D (错误)
解析:

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值