具体题目来自阿里巴巴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