【暑期实习之战】3.31 客路笔试

选择题

1. 有12个platters(最后一个不存数据),每个platter有100个tractor,每个tractor有12个sector,每个sector有512bytes,请问能存多少数据?

A.14.9MB B.11.9MB C.12.9MB D.13.9MB

题解:

计算一个sector的字节数:

  1. 每个sector有512 bytes。
  2. 计算一个tractor的容量:
    每个tractor有12个sector。
    所以,一个tractor的容量 = 12 sectors × 512 bytes/sector = 6144 bytes。
  3. 计算一个platter的容量:
    每个platter有100个tractor。
    所以,一个platter的容量 = 100 tractors × 6144 bytes/tractor = 614400 bytes。
  4. 计算总容量:
    有12个platter(但最后一个不存储数据,所以计算前11个platter)。
    所以,总容量 = 11 platters × 614400 bytes/platter = 6764800 bytes。
  5. 因此,能够存储的数据总量为 6,764,800字节,或者约 6.76MB

2. 有五个不同元素,排序这五个元素最少要比较多少次?

  1. 信息论下限:比较排序的最小次数,任何基于比较的排序算法,其最小比较次数由 信息论下限 决定:
    • 排列可能性:5个元素共有 5!=120 种不同的排列方式。
    • 决策树模型:每次比较产生两种结果(如 < 或 >),决策树的高度 ℎ 需满足 2^ℎ≥120。
    • 计算下限: ℎ≥log⁡2(120)≈6.906向上取整后,ℎ=7,即至少需要 7次比较
  2. 实际算法验证:严谨的 Ford-Johnson算法为例(严格7次比较):
    • 比较3和1 → 1<3。
    • 比较4和5 → 4<5。
    • 比较1和4 → 1<4→ 前4元素顺序为 [1,3,4,5][1,3,4,5]。
    • 插入2到前4序列:
      • 比较2和3 → 2<3。
      • 比较2和1 → 2>1→ 插入到1和3之间。
    • 调整剩余元素:
      • 比较3和5 → 3<53<5 → 最终顺序确定。
  3. 总计7次比较,覆盖所有可能情况。

扩展知识:常见排序算法(比较排序)

  1. 冒泡排序(Bubble Sort):重复遍历序列,比较相邻元素并交换,使较大元素逐渐“浮”到末尾。
    - 时间复杂度: ◦ 最好->()(已排序时) ◦ 平均/最差->(2)
    - 空间复杂度:(1)(原地排序)
    - 特点:简单但效率低,通过交换相邻元素排序。
  2. 选择排序(Selection Sort):每次从未排序部分选择最小元素,与未排序部分的起始位置交换。
    • 时间复杂度:最好/平均/最差:(2)
    • 空间复杂度:(1)(原地排序)
    • 特点:每次选择最小元素放到已排序序列末尾。
  3. 插入排序(Insertion Sort):将未排序元素逐个插入已排序部分的正确位置,类似整理扑克牌。
    • 时间复杂度: ◦ 最好:()(已排序时) ◦ 平均/最差:(2)O(n2)
    • 空间复杂度:(1)O(1)(原地排序)
    • 特点:适用于小规模或基本有序数据。
  4. 快速排序(Quick Sort):选取基准元素(pivot),将序列分为小于和大于基准的两部分,递归排序。
    • 时间复杂度: ◦ 最好/平均:(log⁡) ◦ 最差:(2)(如已排序且未优化)
    • 空间复杂度:(log⁡)(递归栈,原地排序)
    • 特点:实际应用广泛,通过分治和基准元素划分。
  5. 归并排序(Merge Sort):将序列递归拆分为子序列,排序后合并(合并时保持顺序)。
    • 时间复杂度: ◦ 最好/平均/最差:(log⁡)
    • 空间复杂度:()(需额外存储空间)
    • 特点:稳定排序,适合外部排序(如大文件)。
  6. 堆排序(Heap Sort):构建最大堆(或最小堆),逐个取出堆顶元素重构堆。
    • 时间复杂度: ◦ 最好/平均/最差:(log⁡)
    • 空间复杂度:(1)(原地排序)
    • 特点:利用堆结构选择最大/小元素。
  7. 希尔排序(Shell Sort):希尔排序(Shell Sort)是一种改进的插入排序算法,通过分组插入排序逐步减少元素移动次数,提升效率。
    • 时间复杂度: ◦ 最好:(log⁡) ◦ 平均:取决于间隔序列,通常为 (1.3) ◦ 最差:(2)
    • 空间复杂度:(1)(原地排序)
    • 特点:插入排序的改进,通过分组减少逆序对。

3.现在有三个任务:J1=2h J2=3h J3=4h,在单核处理器中以什么顺序执行效率最高?

  • 最优顺序:J1(2小时)→ J2(3小时)→ J3(4小时)
  • 优化目标:最小化平均等待时间和平均周转时间。这样J1等待时间=0;J2等待时间=2,J3等待时间=3。
  • 总完成时间(Makespan):所有顺序均为 2+3+4=9 小时(不可优化)。

4. 下面的哪一个层和协议是对应的?传输层-PGP;应用层-SSLTelnet;网络层-IPsec;数据链路层-PPTP。

网络层 ↔ IPsec,其余选项均存在错误

  • PGP(应用层):直接服务于电子邮件加密,依赖用户应用程序(如Outlook),不处理传输层的数据分段或流量控制。
  • SSLTelnet‌(传输层):SSLTelnet‌并不是一个独立的协议或技术,而是指在Telnet协议中加入SSL/TLS加密层的技术实现。通过在Telnet协议中集成SSL/TLS,可以实现数据的加密传输,增强远程登录的安全性。SSL/TLS在TCP之上为应用层(HTTP、SMTP等)提供加密,属于传输层安全协议。
  • IPsec(网络层):直接在IP数据包中封装加密信息,实现网络层端到端的安全通信(如VPN)。
  • PPTP(网络层/传输层):使用TCP端口1723建立控制通道,GRE协议(IP协议号47)封装数据,属于网络层以上,而非数据链路层。数据链路层协议如L2TP(需结合IPsec加密)、Ethernet、PPP。

扩展知识:TCP/IP四层模型(实际工程模型)

层级 对应OSI层 核心功能 典型协议/设备
网络接口层 物理层+数据链路层 物理介质传输和本地网络数据帧处理 Ethernet、Wi-Fi、MAC地址
网际层 网络层 IP地址寻址和路由 IP、ICMP、路由器(Router)
传输层 传输层 端到端通信和可靠性控制 TCP、UDP
应用层 会话层+表示层+应用层 整合高层功能,直接面向用户应用 HTTP、DNS、SMTP、SSH

5. HTTPS协议可以保护下面哪一项?XSS;Browser hijacking;SQL injection;DDos。

HTTPS无法直接保护XSS、SQL注入、DDoS,但对部分Browser Hijacking(如中间人攻击)有防护作用。

  • XSS:攻击者通过输入或参数提交恶意脚本(如JavaScript),当其他用户访问包含该脚本的页面时,脚本在受害者浏览器中执行,窃取数据或操控用户会话。
    • 防御方法:输入过滤、输出编码、CSP(内容安全策略)。
    • 示例:将用户输入的

你可能感兴趣的:(算法)