采用二路归并排序中一次归并的思想,设三个参数i、j和k分别指向两个待归并的有序序列和最终有序序列的当前记录,初始时i、j分别指向两个有序序列的第一个记录,即i=1,j=1,k指向存放归并结果的位置,即k=1。然后,比较i和j所指记录的关键码,取出较小者作为归并结果存入k所指位置,直至两个有序序列之一的所有记录都取完,再将另一个有序序列的剩余记录顺序送到归并后的有序序列中。
(简答题)
给定n个记录的有序序列A[n]和m个记录的有序序列B[m],将它们归并为一个有序序列,存放在C[m+n]中,试写出这一算法。
正确答案
答案解析
略
相似试题
(单选题)
对含n个记录的有序表进行折半查找,设每个记录的查找概率相等,则平均查找长度的数量级为()。
(简答题)
给定含有m+n个元素的整型数组A(其中m>0,n>0),它分为两个互不重叠的,长度分别为m和n的子数组段,写出交换这两个子数组段的程序,要求不引入数组A以外的数组,但可引入若干中间变量。
(填空题)
对n个记录组成的任意序列进行简单选择排序,所需进行的关键码间的比较次数总共为()。
(单选题)
在初始序列已基本有序(除去n个元素中的某k个元素后即呈有序,k
(简答题)
对于记录序列A[1]~A[n]可按如下如下方法实现奇偶交换排序:第一趟对所有的奇数i,将A[i]和A[i+1]进行比较,第二趟对所有的偶数i,将A[i]和A[i+1]进行比较,每次比较时若A[i]>A[i+1],则将二者交换,然后重复上述排序过程,直至整个数组有序。编写算法实现上述奇偶交换排序。
(简答题)
对给定的序号j(1<j<n),要求在无序记录A[1]~A[n]中找到按关键码从小到大排在第j位上的记录,试利用快速排序的划分思想设计算法实现上述查找。
(填空题)
对N(n>0)个记录进行冒泡排序,最少要交换()记录。
(填空题)
在对10个记录的序列(9,35,19,77,2,10,53,45,27,68)进行直接插入排序时,当把第6个记录10 插入到有序表时,为寻找插入位置,元素间需比较()次。(按升序排序)
(填空题)
在对11个记录的序列(12,35,9,7,2,11,56 ,95 ,37,58 ,60)进行直接插入排序时,当把第6个记录11插入到有序表时,为寻找插入位置,元素间需比较()次。(由小到大排列)