写这个专题的目的因为作为一个android开发工程师,如果不了解Java常用的数据结构和算法的话,那我相信他是进不了大公司的。一般大公司的android面试经常会问一些这方面的问题。比如,我们你SparseArray你有没有了解过,如果你不知道,那估计这轮面试你就悬了。这里咱先不说SparseArray,咱们以后会谈到。在这里,我们先介绍一下这个专题会谈到的内容。
既然是数据结构和算法,那肯定是分为数据结构和算法两个专题来讲。
数据结构我们会分析到主要有以下几个内容:
1.线性表 主要分析顺序表和链表
2.栈和队列
3.hash表
4.容器 Set
5.树,二叉树
6.图 图的遍历与最小生成树
7.最短路径算法等
算法方面我们主要分析以下内容:
1.算法基本概率与分析方法 时间复杂度和空间复杂度计算方式
2.蛮力法(冒泡排序,选择排序,顺序查找和蛮力字符串匹配)
3.分治法(合并排序,快速排序 )
4.递归算法(二分查找,欧几里德)
5.希尔排序,堆排序,基数排序
6.减治法(插入排序,拓扑排序)
7.深度优先查找和广度优先查找
8.变治法(高斯消去法, 平衡二叉树)
9.动态规划
10.回溯经典算法(八皇后,数独构造算法)
网友评论