一道算法的选择题
题目
一道算法的选择题
已知数据表A中的每个元素距其最终位置不远,为节省时间,应采用的算法
A堆排序 B直接插入排序 C快速排序 D B和C
答案
应该选B我也不太清楚为什么
堆排序经常把元素从表的这里换到那里,而且经常是大幅度地换 比如从表头换到表尾之类的,很浪费时间.
快速排序在元素已经比较有序的时候,界值的选取常常会是最大值或最小值,这样划分效果不好,容易退化成O(n^2)的时间复杂度.
选择排序要把所有数据都重新弄到表尾,同样无法利用“每个元素距其最终位置不远”的条件,效率也不好.
只有插入排序在每个元素距其最终位置不远时,由于调整仅仅是小范围内调整,效率比较理想.
举一反三
我想写一篇关于奥巴马的演讲的文章,写哪一篇好呢?为什么好
最新试题
热门考点
- 形容又唱歌,又跳舞的成语
- 在三角形ABC中 a=3 c3√3 A=30度求b 及角c
- 就西方近代文明遭遇的困难,谈谈你对世界文明史趋势的认识
- 椭圆x²/12+y²/3=1的焦点为F1和F2,点P在椭圆上,如果线段PF1的中点在y轴上
- 如果非零向量a与b方向相同或相反,那么a+b的方向必与a、b之一的方向相同?
- 英语翻译
- 如图,梯形ABCD中,AD平行BC,角ACD=角B,若AB=8,AD=4,BC=9,求AC,DC的长
- "相由心生,
- 从罗马帝国所处的地理位置,分析它对文化融合的促进作用.
- 活字印刷如何翻译