X32专项练习部分09
双向链表的搜索速度方差
/*
关于双链表的搜索给定元素操作的说法正确的是
正确答案: B
从两个方向搜索双链表,比从一个方向搜索双链表的速度慢
从两个方向搜索双链表,比从一个方向搜索双链表的方差要小
从两个方向搜索双链表,比从一个方向搜索双链表速度要快
以上说法都不正确
如果链表数据是无序的,则搜索速度一样快,
如果是有序的,则又向搜索比单向搜索更快
因此综合起来,搜索速度的方差,双向搜索时更小
*/
适合存放数据元素的结构
/*
某一系统功能,需要一次性加载N(N在1000左右)个随机数
后续只对该集合进行遍历。最宜采用哪种结构存放?
正确答案: C
Hash表
二叉树
链表
图
随机数,未经排序,二叉树不适合,二叉树自动排序,TreeSet可排序集合;
需要遍历,hash表不适合;
不强调数据之间的关系,图不适合;
随机数数据类型不一致,数组不适合。
综上所述,链表最适合。
数组:连续存储,遍历快且方便,长度固定,缺点移除和添加 需要迁移n个数据或者后移n个数据
链表:离散存储,添加删除方便,空间和时间消耗大,双向链表比单向的更灵活,但是空间耗费也更大
Hash表:数据离散存储,利用hash算法决定存储位置,遍历麻烦。以java的HashMap为例
二叉树:一般的查找遍历,有深度优先和广度优先,遍历分前序、中序、后序遍历,效率都差不多
但是如果数据经过排序,二叉树效率还是不错。
*/
有无符号位运算
public static void main(String[] args) {
/*
>> 表示带符号右移,如果为负数,符号位补1
>>> 表示无符号右移,忽略符号位
*/
System.out.println(20 >>> 2); // 5
System.out.println(-20 >> 2); // -5
System.out.println(-20 >>> 2); // 1073741819
}
类变量和局部变量
/*
下列程序的输出结果是
*/
class Test {
public static int a = 1;
public static void main(String[] args) {
int a = 10;
a++; // 类变量+1
Test.a++; // 局部变量+1
Test t=new Test();
System.out.println(