阿里巴巴2017实习生笔试题(二)——总结

文章探讨了C++中的多态性,动态链接与静态链接的优缺点,以及它们如何影响内存管理和页面交换。此外,提到了排序算法、哈夫曼树的构建,以及不同进程间通信机制如管道、信号量、共享内存和套接字。还涉及了PowerPC和IntelX86的存储差异,线程上下文的概念,系统调用的工作原理,VLAN的作用和局限性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

具体题目来自阿里巴巴2017实习生笔试题,本文仅为整理与汇总。
在这里插入图片描述
本题应该往C++的多态性进行理解,多态中的动态链接在执行时进行,静态链接在编译时进行。其中A、C、D 都是动态链接的优点,B 时静态链接的优点。

减少页面交换可从如下角度进行理解:
Y个程序中使用了相同的代码(假设这部分代码占用X个内存页),如果使用的是静态链接,这些相同的代码在各程序运行时必须重新加载到内存,那么Y个程序加载这部分代码会至少造成 Y*X 次缺页。如果使用的是动态链接库,运行这些程序时,这个动态链接库可能只需要被加载到内存一次,最少可能只造成 X 次缺页。

在这里插入图片描述
利用快排的patition思想,基于数组的第k个数来调整,将比第k个数小的都位于数组的左边,比第k个数大的都调整到数组的右边,这样调整后,位于数组右边的k个数最大的k个数(这k个数不一定是排好序的)

在这里插入图片描述
哈夫曼树每次都将最小的两个节点聚合成新节点,画出哈夫曼树并进行计算即可。

在这里插入图片描述
8 × 9 × 3 + 8 × 9 × 3 = 432 8\times 9\times 3 + 8\times 9\times 3 = 432 8×9

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值