顺序表的合并
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验题目:顺序表的合并
一、实验目的
(1)、掌握顺序表的基本操作
(2)、理解并分析算法的时间复杂度
二、实验内容
实现两个有序(从小到大)顺序表合并成为一个顺序表,合并后的结果放在第一个顺序表中(假设这两个有序顺序表中没有相同的元素)。
三、设计与编码
1、基本思想
合并两数组再用冒泡法从小到大排序
2、C++编码
#include
using namespace std;
class as
{
private:
int length1;
int length2;
int arr1[21];
int arr2[21];
int length;
public:
as(int len1,int a[],int len2,int b[])
{
int i;
length1=len1;
length2=len2;
for(i=0;i arr1[i]=a[i]; for(i=0;i arr2[i]=b[i]; } int intser() { length=length1+length2; int i,j,t; for(i=0;i arr1[length1+i]=arr2[i]; for(i=0;i for(j=length-1;j>i;j--) if(arr1[j] { t=arr1[j-1]; arr1[j-1]=arr1[j]; arr1[j]=t; } } return length; } void show() { int i; cout< for(i=1;i cout<<" "< } }; int main() { int n,y; cin>>n; while(n--) { int i,n1,n2,a[21],b[21]; cin>>n1; for(i=0;i cin>>a[i]; cin>>n2; for(i=0;i cin>>b[i]; if(n1+n2>20) { cout<<"not enough"< return 0; } as A(n1,a,n2,b); y=A.intser(); cout< A.show(); cout< } } 四、调试与运行 1、调试时遇到的主要问题及解决 少了“;”,“字母大小写没注意” 2、运行结果(输入及输出,可以截取运行窗体的界面) 五、实验心得 通过这次实验,我认识到了我的不足,也懂得了很多。在之前,只是一直盲目的跟着书本上的东西打,就像打字一样,不用思考,也不会实际应用。通过这次实验,让我们有了实践的机会。同时也复习了一些C++的知识,让我更加熟悉这些简单语句,也通过书上的很多错误来敲醒我的盲从,学习必须脚踏实地,多写程序,多实践,才是进步的法门。从一次次实验的失败到一次次找办法解决冲突,让我更加学会如何借助帮助文件以及和同学交流来解决问题。这次实验我受益匪浅啊! 谢谢学校给我提供了这么好的环境,也谢谢老师对我们的细心指导,老师您辛苦了!