阿里实习笔试速度复习(二) ---其实考到的不多
来源:互联网 发布:西安软件行业 编辑:程序博客网 时间:2024/04/30 08:43
算法基础:
(1) 时间频度
(2) 时间复杂度
(3) 空间复杂度
顺序结构(数组)
优点: 随机存取
缺点: 插入,删除需要大量移动元素 ,前端和中间插入和删除影响很大
表:优点:易扩展,追加,追减快,交换快, 插入和删除不需要移动,空间有效利用
缺点:随机存取速度慢
vector- 会自动增长的数组
随机存取前端和中间插入和删除影响很大
list- 擅长插入删除的双向链表
deque- 拥有vector和list两者优点的双端队列
可以随机访问,但是中间插入和删除很慢
栈 限制在表的一端进行插入和删除运算的线性表LIFO表
优点操作限制,机制明确.
缺点操作受限制,随机存取困难
队列 先进先出(FIFO)的线性表
优点操作限制,机制明确.
缺点操作受限制,随机存取困难
循环队列
树
前序遍历,中序遍历,后序遍历
二叉树—至多2个儿子
二叉查找树-- 左>中>右
makeEmpty operator= O(logN) 其他 O(d) 平均O(logN)
随机insertremove后会很不平衡
AVL树
插入 外边单旋 里面双旋转
1 左儿子左子树 单旋
2 左儿子右子树 双旋
3 右儿子左子树 双旋
4 右儿子左子树 单旋
伸展树 - - 保证从空树开始的任意连续操作最多话费O(MlogN)
B树---适合于存储
红黑树---一种自平衡二叉查找树 它可以在O(log n)时间内做查找,插入和删除,这里的n是树中元素的数目。
性质1. 节点是红色或黑色。
性质2. 根节点是黑色。
性质3 每个叶节点(NIL节点,空节点)是黑色的。
性质4 每个红色节点的两个子节点都是黑色。(从每个叶子到根的所有路径上不能有两个连续的红色节点)
性质5. 从任一节点到其每个叶子的所有路径都包含相同数目的黑色节点。
对红黑树进行插入操作时,总是插入红色的结点.
情况1:插入的是根结点。----对策:直接把此结点涂为黑色。
情况2:插入的结点的父结点是黑色。----对策:什么也不做。
情况3:当前结点的父结点是红色且祖父结点的另一个子结点(叔叔结点)是红色。
对策:将当前节点的父节点和叔叔节点涂黑,祖父结点涂红,把当前结点指向祖父节点,从新的当前节点重新开始算法。
情况4:当前节点的父节点是红色,叔叔节点是黑色,当前节点是其父节点的右子
对策:当前节点的父节点做为新的当前节点,以新当前节点为支点左旋。
情况5:当前节点的父节点是红色,叔叔节点是黑色,当前节点是其父节点的左子
解法:父节点变为黑色,祖父节点变为红色,在祖父节点为支点右旋
散列
把数据通过散列函数映射到固定大小的数组
探测
H0(x), H1(x)…
线性探测 f(i) = i
平方探测f(i) = i*i
双散列 hash1(x) + i* hash2(x)
再散列新建2倍大小表再散列
优先队列(堆)
二叉堆
- 阿里实习笔试速度复习(二) ---其实考到的不多
- 阿里实习笔试速度复习(一) ---其实考试考到的很少
- 复习软考的心路历程(二)
- 2013.05阿里实习笔试题
- 2014.3.29阿里实习笔试
- 2014.3.29阿里实习笔试
- 阿里实习二面
- 阿里15年前端实习笔试-做的答案
- 阿里笔试-从1到1000生成900个不重复的随机数并打印出来
- 某公司笔试题(实习)-(其实有的所谓的技术工作是不需要技术的)
- #java笔试复习(二)#
- 阿里笔试题二
- 阿里笔试(二)
- 实习记(二)其实很无聊
- 【阿里2013实习笔试】找明星
- 2014.3.29阿里实习笔试题
- 【阿里2013实习笔试】找明星
- 2015阿里前端实习在线笔试题
- android:inputType参数类型说明
- PHP 自定义字符串中的变量名解析
- iOS开发之一:入门介绍
- Linux kernel FAT32文件系统分析
- 第四周作业--part 2
- 阿里实习笔试速度复习(二) ---其实考到的不多
- 提高Jquery性能的tips
- 写给所有家庭条件一般的年轻人
- 切记!职场邮件需注意的细节
- Java mysql连接
- 【4月限时免费】车载环境中文手机录音数据
- thinkphp中使用frameset
- 常用awk命令(转)
- 第七周项目一深复制体验(1)