复试day4 计网&DS

1.按范围网络分为几类?

广域网,城域网,局域网。广域网覆盖范围大,通常借用公用网络,传输速率较慢,网络拓扑结构复杂 。 城域网局域网范围较小,用户接入简单 。

  1. 网络的功能有哪些?
  1. 信息传输 。

  1. 资源共享 。

  1. 分布式处理 。

  1. 负载均衡 。

  1. 提高可靠性 。

  1. 复用与分用
  1. 复用:应用层所有应用进程都可以通过传输层再传到网络层 。

  1. 分用:传输层从网络层受到数据后再交付给指明的进程。

  1. 计网中的数据结构
  1. OSPF(开放最短路径优先协议)采用迪杰斯特拉计算最短路径

  1. 路由器的分组转发中分组排队用到队列

  1. DNS解析中采用树的结构

  1. TCP/IP协议4层模型
  1. 应用层 FTP,SMTP,DNS,HTTP 对应OSI模型的前三层 。

  1. 传输层 UDP,TCP 对应OSI模型的传输层 。为两个主机进程之间的通信提供服务。

  1. 网际层 IP,ICMP,ARP 对应OSI模型网络层。路由选择与转发分组。

  1. 网络接口层 HDLC(高级链路控制协议),PPP(点对点协议)。对应OSI模型下两层。它表示与网络的接口,指出主机必须通过某协议接入网络,以及规定连接的机械过程功能电气特性。

  1. 拥塞控制:
  1. 在传输层,主要有慢开始和拥塞避免组合,快重传快恢复组合。

  1. 连接建立后,拥塞窗口被初始化为1个报文段大小,发送方每接受到一个确认拥塞窗口便加1。

拥塞避免是窗口到达规定的慢开始门限时,启用拥塞避免算法,拥塞窗口每经过一个往返时延增大1,由指数增长改为线性增长。如遇拥塞,门限改为当前窗口的一半,并把拥塞窗口置1,重新慢开始。

快重传:当发送方连续受到三个重复的ACK,直接重传对方未收到的报文段而不必等待该报文重传计时器超市。

快恢复,受到三个重复ACK时,将慢开始门限设为当前拥塞窗口的一般,并把拥塞窗口也减半,进入拥塞避免阶段。

当发送方重传计时器超时,使用慢开始拥塞避免。受到重复ACK,启用快重传快恢复。

  1. OSI模型的流量控制:
  1. 数据链路层,网络层,传输层。

  1. PPP协议: 点对点协议,应用与直接连接两个点的链路上,工作在数据链路层,支持同步传输与异步传输,可扩展为PPPoE.
  1. 拥塞控制与流量控制
  1. 拥塞控制是防止太多的数据注入到网络中,这是一个全局性的问题,涉及到网络中所有的路由器与主机,而单单提高结点处理速度或缓存空间并不能解决问题。

  1. 流量控制是点对点通信量的控制,是一个端到端的问题,控制发送端发送速率让接收端来得及接收。

  1. 集线器,交换机,路由器

  1. 集线器是物理层设备,不能隔离冲突域。

  1. 交换机是链路层设备,不能隔离广播域,能隔离冲突域。

  1. 路由器是网络层设备,能隔离广播域。

  1. 奈氏准则指出在理想低通信道中,信道极限传输速率与带宽,码元的离散电平数目有关。

香农定理指出在信道中,极限传输速率与带宽,信噪比有关。

  1. 电路交换,报文交换,分组交换
  1. 电路交换:两个节点要先建立一条专用的物理通信路径,直到通信结束才被释放。有建立连接,传输数据,连接释放三个阶段。 优点:通信时延小,有序传输,没有冲突,控制简单。 缺点:信道利用率低,连接建立时间长,灵活性差。

  1. 报文交换:数据交换的单位是报文,采取路由器存储转发的方式。 优点:无需建立连接,动态分配线路,提高了通信的可靠性,提高了信道利用率。缺点:报文过长存储的时候浪费时间,需要较大的缓存。

  1. 分组交换:将报文分成小的分组存储转发 。 优点:无需建立连接,提高信道利用率 , 可采取流水线方式减少传输时间 。 缺点:仍存在存储时延,需转发额外的数据量,可能存在失序丢失分组。

  1. 分组交换中:

  1. 数据报方式:将报文分割成若干带序号的数据单元,装填上控制信息形成数据报。不同分组可以走不同的路径,按不同顺序到达接收方。

  1. 虚电路方式:发送前建立一条逻辑上的虚电路,发送路径也相对固定了。

  1. 数据链路层的滑动窗口协议
  1. 用于流量控制和可靠传输

  1. 停-等协议:发送与接收窗口都为1,发送一个帧后,必须等到对该帧的确认帧后才能发送下一个帧。

  1. GBN协议:发送窗口为2^n-1,接收窗口为1,发送方可以连续发送帧,接收方顺序接收帧。若收到失序信息帧,接收方要求发送方重发最后一个正确接收的帧之后的所有帧。

  1. 选择重传协议:发送窗口+接收窗口<=2^n。接收方可以收下那些序号不连续但在接收窗口内的帧。不支持累计确认。

  1. CSMA

  1. 1-坚持协议:若信道空闲立即发送数据,若信道忙持续监听信道直至空闲。

  1. 非坚持协议:若信道空闲立即发送数据,信道忙则放弃监听,等待一个随机时间后再开始监听。

  1. p-坚持协议:若信道空闲以概率p发送数据,1-p概率推迟到下一个空闲时隙。

  1. CSMA/CD:信道忙则持续监听直到信道空闲,信道空闲则发送数据,发送数据的过程中持续监听信道,若遇碰撞停止发送,强化冲突,按截断二进制算法确定重发时间。

CSMA/CA:监听媒体状态,若媒体空闲,则等待一段随机的时间后再送出数据。送出数据前发送方要发送一个RTS,等待接收方发来CTS后再开始传送。

区别:传输介质不同,CD用于总线式以太网,CA用于无线局域网802.11 . 检测方式不同,CD通过电缆中电压的变化检测是否冲突。CA用能量检测,载波检测检测信道是否空闲。CD能检测发送过程中 是否发生冲突无法避免冲突,CA则是尽量避免冲突,不能在发送过程中检测冲突。

  1. CD如何进行冲突检测
  1. 在争用期内检测电缆上的电压变化,适配器会检测来自其他适配器的信号能量,如果检测到则发生冲突。

  1. 最小生成树
  1. 一个n个结点的连通图的生成树是该图的极小连通子图且包含n个结点和n-1条边。

  1. 最下生成树可以由克鲁斯卡尔和普利姆求出,克鲁斯卡尔时间复杂度eloge,适合稀疏图。普利姆n^2,适合稠密图。

  1. 快速排序:
  1. 过程:每次选取一个枢纽元素,大于该元素的数放到枢纽右边,小于该元素的数放到枢纽左边。再递归对左右两部分重复上述步骤,直到排序完成。

  1. 改进:1.枢纽值从序列左端点,右端点和中间位置中选取中间值作为基准元素。2.当递归的子序列较小时改用直接插入算法对该子序列排序。

  1. 最差情况:枢纽元素选取不合适,每次划分出一个子序列,递归树退化成单支树,时间复杂度达到n^2。

  1. 最好情况下的元素比较次数:An = A[(n-1)/2]+A[(n-1)/2]+n-1。 最差情况下:n(n-1)/2

  1. 分治的思想

  1. 折半查找比较关键字次数最多:
  1. logn向下取整+1

  1. 栈与队列应用:
  1. 栈:检测括号是否匹配,计算后缀表达式,编辑器的历史记录功能,数的进制转换,递归。

  1. 队列:消息队列,进程的调度,服务窗口。

  1. 矩阵相加行优先与列优先有什么区别
  1. 如采用行优先,数据在存储器中都是按行存储,每访问到一个元素由于局部性原理会将该元素相邻元素读入cathe,后面元素访问时间会大大缩短。

  1. 如采用列优先,每次读的元素都不在cathe中,访问时间会很长。

  1. 从数组中找出最大的元素
  1. 建堆:将数组看作逻辑上的满二叉树,从最后一个分支结点开始,若子节点值比分支结点值大交换位置,重复一直到根节点。On

7. 如何在一组无序数中确定某个值是否存在?

  1. 用除留余数法和拉链法建立hash

  1. 满二叉树:除最后一层没有任何子节点外,其余任何结点都有两个子节点的二叉树
  1. 完全二叉树,结点数为N,高为H的完全二叉树,1-N的结点完全对应于同高的满二叉树。

  1. 满二叉树N层有2^N-1个结点,满M叉树N层有(1-M^N)/1-M个结点。

  1. 谈对数据结构的理解
  1. Data never exist in isolation.There is a relationship bewteen them.The relationship is called structure.Data structure is a collection of data elements which have one or more specific relationships to each other.Data structure concludes three aspects,logical structure,storage structure and data operation.The design of algorithm depends on the logical structure and the implementation of algorithm depends on the storage structure.

9. 图的存储方式

邻接矩阵,将图的顶点用一维数组存储,图的边用二维数组A存储,Aij表示从顶点i到顶点j的弧。优点:方便查找两个顶点之间是否有边,方便边的删除与添加。缺点如果是稀疏图则会浪费大量的存储空间。

邻接表,图的顶点顺序存储,每个顶点都连接一个单链表,单链表中的结点都表示依附于该顶点的边。优点:空间效率高,缺点:不便于判断两顶点间是否有联系。

10. 快速排序为什么性能最优

堆排序小根堆每次剔出对顶元素,然后将最后的元素放到堆顶让其自我调整,这样其实有很多次无效的比较。因为被拿到堆顶的元素一般是很大的,而靠近堆顶的元素又很小,调整的话该元素很可能又回到堆底。

堆排序的过程中需要有效的随机存取,在大规模数据中计算数组下标也需要时间,堆排序中有大量的随机存取数据,而快排中只有顺序存取数据。

快速排序优越性体现在它没有多余的比较,如果我们直到a<b,那之后ab就无需比较了。

  1. 堆排序
  1. 堆排序是将要排序的数组看作一颗完全二叉树的顺序存储结构。首先构建初始堆是从最后一个分支结点开始,从后往前开始调整。调整后每次取堆顶元素,将最后一个元素再放到堆顶,再次调整。不断重复就得到了排序的数组。

  1. 强连通图与连通图:
  1. 强连通图是有向图中任意两个顶点都连通的图。

  1. 连通图是无向图中任意两个顶点都连通的图。

  1. 如何遍历访问非连通图每一个结点
  1. 循环遍历每一个连通分量,连通分量的遍历可以采用dfs或bfs。

  1. 为什么要有哈希,什么是哈希冲突,如何解决
  1. 哈希表可以建立一个映射关系,用短的key值代替长的数据去进行查找。

  1. 哈希冲突是不同值通过哈希映射后得到了相同的结果。

  1. 可以用开放定址法和拉链法解决。开放定址法有线性探测法平方探测法再散列法。拉链法用指针将冲突值连接起来。

  1. n个结点的满二叉树高度:log(n+1)
  1. 迪杰斯特拉算法
  1. 是用来求单源最短路径的算法,要求带权有向图中没有负值,基于贪心的策略,时间复杂度为ov^2。从一个顶点开始,寻找到下一个顶点的权值最低的边,将该顶点加入集合,再从集合开始遍历下一个可到达的顶点,将权值最短的路径的顶点加入集合,重复n-1次即可得到单源最短路径。

  1. 如何实现循环队列
  1. 将存储队列元素的数组从逻辑上看成一个环。对空front == rear,队满:(rear+1)%maxSize = front . 增加元素:rear = (rear+1)%maxSize , 删除元素 front = (front+1)&maxSize.

  1. 深度优先搜索形成的是什么
  1. 树或者森林。形成的森林不唯一。

  1. 对于一个单链表怎么快速找到它的中间结点
  1. 设两个指针都指向头节点,快指针一次走两个结点,慢指针一次走一个结点,当快指针到达表末尾时,慢指针指向的就是中间节点。

  1. 人际关系的网的物理结构是什么
  1. 人际关系存在数据库里,对于关系型数据库,为每个用户建立一张user表,存储用户信息,再建立一张人机关系表,如果A加B为好友,那么就把A-》B作为一行iinsert到关系表中。

  1. 栈在函数调用中的作用
  1. 当发生函数调用,会将该函数的局部变量和返回地址压入栈中,并向要调用的函数传递参数,当要调用的函数完成后,栈会弹出顶层的元素,恢复顶层的变量环境,运行结束后会向上一级返回返回值。

  1. 深搜与宽搜的时间空间复杂度
  1. 对于图:

  1. 采用邻接表:深搜宽搜的时间复杂度为v+e . 空间复杂度为

  1. 采用邻接矩阵:时间复杂度均为v^2

b. 对于树:

深搜宽搜的时间复杂度为n,深搜的空间复杂度为h,宽搜的空间复杂度为n.

  1. log2n,lnn,logn时间复杂度的区别
  1. 大规模数据上来说,log2n花费时间最长,logn时间最短。

  1. 二叉查找树与数组实现二叉查找有什么区别
  1. 前者二分查找是动态的,方便进行数据的增删,后者是静态的,不方便数据增删。静态查找是指只对表进行查找操作,并不会动态的增删元素。

  1. 二分查找链表的复杂度
  1. 数组随机存取的复杂度为1,链表随机存取复杂度为n,nlogn

  1. n个顶点的连通图与强连通图至多至少有多少条边?
  1. 连通图至多有(n-1)n/2,至少有n-1条边

  1. 强连通图至多有(n-1)n条边,至少有n条边

  1. 开放定址法如何删除关键字
  1. 不能随意删除,只能作一个标记对其进行逻辑上的删除 ,否则可能将其他具有相同散列地址的元素截断。查找时将其当作普通元素查找即可。

  1. 完全图
  1. 每对顶点之间都有一条边相连的无向图。n个顶点,(n-1)n/2条边。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值