早教吧作业答案频道 -->其他-->
归并算法的C++题目,半个小时内回答给50分!!!急求!!!根据下面将两个有序表合并为一个有序表的算法思想,在sort2.cpp文件中实现函数voidTwoMerge(intA[],ints,intm,inte),将有序表A[s]~A[m]
题目详情
归并算法的C++题目,半个小时内回答给50分!!!急求!!!
根据下面将两个有序表合并为一个有序表的算法思想,在sort2.cpp文件中实现函数void TwoMerge(int A[],int s,int m,int e),将有序表A[s]~A[m]和A[m+1]~A[e]合并为一个有序表A[s] ~A[e]。并在主函数中对数组B_1[]={36,49,52,75, 80,14,23,58,61,97}调用函数TwoMerge(B_1,0,4,9);将B_1中两个有序序列(0~4)和(5~9)的数据合并为一个有序序列。
a.从数组A[s]~A[m]和A[m+1]~A[e]中各取一最小数
b.比较取出的两个数,将较小数按顺序放入数组临时数组R中
c.从较小数对应的数组中取出下一个最小数
d.重复步骤b、c直到两个序列中的数据全部取走
e.如果s~m或m+1~e有未取走的数据,则将剩下的数全部按顺序拷贝到R中已加入的数据后
f.将R中数据逐一拷贝回A中
根据下面将两个有序表合并为一个有序表的算法思想,在sort2.cpp文件中实现函数void TwoMerge(int A[],int s,int m,int e),将有序表A[s]~A[m]和A[m+1]~A[e]合并为一个有序表A[s] ~A[e]。并在主函数中对数组B_1[]={36,49,52,75, 80,14,23,58,61,97}调用函数TwoMerge(B_1,0,4,9);将B_1中两个有序序列(0~4)和(5~9)的数据合并为一个有序序列。
a.从数组A[s]~A[m]和A[m+1]~A[e]中各取一最小数
b.比较取出的两个数,将较小数按顺序放入数组临时数组R中
c.从较小数对应的数组中取出下一个最小数
d.重复步骤b、c直到两个序列中的数据全部取走
e.如果s~m或m+1~e有未取走的数据,则将剩下的数全部按顺序拷贝到R中已加入的数据后
f.将R中数据逐一拷贝回A中
▼优质解答
答案和解析
#include
using namespace std;
void TwoMerge(int A[], int s, int m, int e)
{
int R[100];
int k = s;
int begin1 = s;
int end1 = m;
int begin2 = m + 1;
int end2 = e;
while(k <= e )
{
if(begin1 > end1)
R[k++] = A[begin2++];
else if(begin2 > end2)
R[k++] = A[begin1++];
else
{
if(A[begin1] <= A[begin2])
R[k++] = A[begin1++];
else
R[k++] = A[begin2++];
}
}
int i;
for(i=s;i<=e;i++)
A[i]=R[i];
}
int main()
{
int B_1[]={36,49,52,75, 80,14,23,58,61,97};
TwoMerge(B_1,0,4,9);
int i;
for(i=0;i<=9;i++)
cout< system("pause");
}
using namespace std;
void TwoMerge(int A[], int s, int m, int e)
{
int R[100];
int k = s;
int begin1 = s;
int end1 = m;
int begin2 = m + 1;
int end2 = e;
while(k <= e )
{
if(begin1 > end1)
R[k++] = A[begin2++];
else if(begin2 > end2)
R[k++] = A[begin1++];
else
{
if(A[begin1] <= A[begin2])
R[k++] = A[begin1++];
else
R[k++] = A[begin2++];
}
}
int i;
for(i=s;i<=e;i++)
A[i]=R[i];
}
int main()
{
int B_1[]={36,49,52,75, 80,14,23,58,61,97};
TwoMerge(B_1,0,4,9);
int i;
for(i=0;i<=9;i++)
cout<
}
看了 归并算法的C++题目,半个小...的网友还看了以下:
地图上实际分布的事物有()a本初子午线B经纬网C地轴D山脉,河流本初子午线是()A南北纬度的分界线 2020-04-23 …
读“东西半球划分图”回答问题.(1)图中甲是半球,乙是半球.我国处于半球.(2)图中a、b、c、d 2020-04-23 …
读“南北半球图”、“东西半球图”,填出图中的地理事物.(1)甲是半球,乙是半球,甲乙两半球的分界线 2020-04-24 …
如图,把一张四边形纸片沿EF折叠后,点D,C分别落在D’C"的位置.若角AED=50度,角C+角D 2020-05-13 …
如图,把一张长方形abcd的纸片沿ef折叠后,ed与bc的交点为g,点d,c分别落在d'c'的位置 2020-05-16 …
如图,把等腰梯形ABCD的一边DC沿EF折叠后,使点D,C分别落在D’,c’,若∠BFC’=20, 2020-06-06 …
在听磁带式录音机的录音时,经过20分钟,带轴上带卷的半径会减少13.那么,从此刻到带卷的半径变成起 2020-06-23 …
8、北半球夏半年(北半球春分日至秋分日),下列四地昼最长夜最短的是()A广州B上海C北京D哈尔滨1 2020-07-12 …
(1)已知a,b,c均不为0,且满足方程组a+b-c=0,2a-b-5c=0试求3a-d-c分之2a 2020-10-31 …
关于全球海陆分布状况的描述,正确的是()A.全球陆地主要集中分布在西半球B.全球海洋主要集中分布在北 2020-12-19 …