用插入排序和归并排序算法对数组<3,1,4,1,5,9,6,5>进行从小到大排序,则分别需要进行______次数组元素之间的比较。

用插入排序和归并排序算法对数组<3,1,4,1,5,9,6,5>进行从小到大排序,则分别需要进行______次数组元素之间的比较。
A.12,14
B.10,14
C.12,16
D.10,16
正确答案是A
答案解析
插入排序的基本思想是:每步将一个待排序的纪录,按其关键码值的大小插入前面已经排序的文件中适当位置上,直到全部插入完为止。
插入排序最基本的应用就是 平时打扑克牌的时候 一张张拿牌的过程。

以下是排序步骤:
1、【3】1,4,1,5,9,6,5
2、【1,3】,4,1,5,9,6,5 比较次数1次:3和1比较
3、【1,3,4】,1,5,9,6,5 比较次数1次:4和3比较 因为4比3大所以不和1比较
4、【1,1,3,4】,5,9,6,5 比较次数3次:1和4比较 1和3比较 1和1比较 因为1比4小故而需要和之前的数组比较直到大于等于之前的数字才停止
5、【1,1,3,4,5】,9,6,5 比较次数1次:5和4比较
6、【1,1,3,4,5,9】,6,5 比较次数1次:9和5比较
7、【1,1,3,4,5,6,9】,5 比较次数2次:6和9比较 6和5比较
8、【1,1,3,4,5,5,6,9】 比较次数3次:5和9比较 5和6比较 5和5比较
所以 比较的次数为 1+1+3+1+1+2+3=12次

 

归并操作(merge),也叫归并算法,指的是将两个顺序序列合并成一个顺序序列的方法。

以下是排序步骤:

所以比较次数为 4+6+4=14次

posted @ 2017-06-08 11:01  下-个路口  阅读(2907)  评论(0编辑  收藏  举报