抱歉,由于刚开始不会编辑,很多图片都没有了,可以查看word版本:http://download.csdn.net/detail/duomengwuyou/8310811
1、Group by 和 having
Group by是分组查询,一般和聚合函数使用;
增加having的原因是,在where语句中是不能和聚合函数一起使用的。
2、死锁的原因以及银行家算法
互斥,不可强占,请求和保持,循环等待
为了预防死锁的出现,提出了银行家算法。
可利用资源:列出现在可以使用的资源数目,就是银行家现在有多少钱。
最大需求矩阵:N个进程对M类资源的需求量,限制了资源上限,不能超过这个数值。
分配矩阵:N个进程在M类资源上面已经分配了多少
需求矩阵:N个集成在M类资源上面尚需资源。
银行家算法其实就是是否为用户分配资源,分配之后是否是安全的进行验证。有资源可用量,用户需求最大量,用户分配量,用户需求量。
在银行家算法中,首先是进行资源的初始化;而后模拟用户输入资源请求,如果请求量小于所需量而且请求量小于可用量,则给其分配资源;分配完资源之后判断是否处于一个安全状态。所谓的安全状态是指,我给未结束的而且所需资源数目小于提供数目的进程分配资源,然后释放掉响应资源,继续找这种集成,看能否最后所有的进程都能够结束。
3、数据库的四个范式
4、IP掩码
掩码其实就是通过和真实的ip地址做与运算,然后通过对比前面的网络号来判断是否是在同一个网络下面。IP地址这种0 1 0 1的表示可以通过掩码来进行筛选判断。
5、拓扑排序
拓扑排序就是指在一个图中,如何给出一个节点间的顺序。
1、 声明一个degree数组,用于记录每一个数组的入度是多少。挑选出所有入度为0的点,如果没有,那么说明存在环。
2、 遍历所有入度为0的节点,然后找到其孩子,对应孩子的的degree--,如果degree变为0,那么就加入到上面所说的入度为0的数组中。
在遍历的过程中便可以打印出顺序。
6、进制之间的转换
7、TCP三次握手和四次挥手
8、数据结构-图
9、Dijkstra算法思想
单点源最短路径问题。
主要采用贪心的思想,步骤如下:
1、 设置数据结构:dist[]数组用于存储从原点开始到现在的点的距离。
2、 首先在dist中找出最小值k,然后更新所有和k相连接的点的dist[]。直到所有的节点遍历结束
10、Prim算法思想
Lowcost:lowcost[i]代表的是从选中的节点中到结点i的最短距离。
Mst[i] :表示的是最短距离的这条线的开始节点是什么。
1、 刚开始以0节点为初始化节点。初始化了lowcost[i]。
2、 找出lowcost里面不为零而且最短的节点j。
3、 修改lowcost,因为新加入了节点j,可能lowcost就会有所改变。