这里的题目收集于网上,真实信应该是真的
1,下列排序算法中,初始数据集的排序程序对算法性能无影响的是()
A,插入排序B,堆排序 C,冒泡排序,D,快速排序
答案:B,冒泡的复杂度恒定为O(n^2),插入排序最差是O(n^2),最优化为O(n);堆排序建堆的时间是O(n),但是,排序的过程是O(nlogn),固定不变;
冒泡排序虽然大家都认为是O(n^2),但是,优化的冒泡是使用一个flag的,如果flag不变,说明不需要 再交换元素了,最优可以到O(n),快速排序不解释,最差的情况每一次只分出一个元素,最差是O(n^2),最优的时候是O(nlogn)
2,关于cache的描述中,以下说法正确的是()
CPU内的Cache容量应该大于CPU外的Cache容量
Cache的设计思想是在合理成本下提高命中率
Cache的设计目标是容量尽可能地与主存储容量相当
在容量确定的情况下,替换算法的时间复杂度是影响Cache命中的关键因素
答案:B,Cache一般比较小,但是,速度会更快,CPU内的Cache容量显然小于CPU外的,其设计原理是利用程序的局部性原理,即一断数据现在被访问,可能一会又会被访问,目标是提高数据的访问速度,其命中率的关键因素与替换算法有关系,而不是替换算法的复杂度