您的位置:首页 > 其它

找工作遇到的其他技术问题及解答(1)

2014-12-25 13:48 253 查看
[b]抱歉,由于刚开始不会编辑,很多图片都没有了,可以查看word版本:http://download.csdn.net/detail/duomengwuyou/8310811

[/b]

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、进制之间的转换

[b]7、TCP三次握手和四次挥手

[/b]



[b]8、数据结构-图

[/b]













[b][b]9、Dijkstra算法思想

[/b][/b]

单点源最短路径问题。

主要采用贪心的思想,步骤如下:

1、 设置数据结构:dist[]数组用于存储从原点开始到现在的点的距离。

2、 首先在dist中找出最小值k,然后更新所有和k相连接的点的dist[]。直到所有的节点遍历结束

[b][b]10、Prim算法思想

[/b][/b]





Lowcost:lowcost[i]代表的是从选中的节点中到结点i的最短距离。

Mst[i] :表示的是最短距离的这条线的开始节点是什么。

1、 刚开始以0节点为初始化节点。初始化了lowcost[i]。

2、 找出lowcost里面不为零而且最短的节点j。

3、 修改lowcost,因为新加入了节点j,可能lowcost就会有所改变。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: