博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数据结构学习-数组A[m+n]中依次存放两个线性表(a1,a2···am),(b1,b2···bn),将两个顺序表位置互换...
阅读量:5129 次
发布时间:2019-06-13

本文共 838 字,大约阅读时间需要 2 分钟。

将数组中的两个顺序表位置互换,即将(b1,b2···bn)放到(a1,a2···am)前边。

解法一:

将数组中的全部元素(a1,a2,···am,b1,b2,···bn)原地逆置为(bn,bn-1,···b1,am,am-1···a1),再对前n个元素和后m个元素分别逆置,得到(b1,b2···bn,a1,a2···am),从而实现位置互换。

代码:

void Reverse(int a[],int left,int right,int arraySize){
//逆转(aleft,aleft+1,aleft+2···,aright)为(aright,aright-1,···,aleft) if(left>=right||right>=arrySize) return; int mid=(left+right)/2; for(int i=0;i<=mid-left;i++) { int temp=A[left+i]; A[left+i]=A[right-i]; A[right-i]=temp; }} void Exchange(int A[],int m,int n,int arraySize){ Reverse(A,0,m+n-1,arrySize); Reverse(A,0,n-1,arrySize); Reverse(A,n,m+n-1,arrySize); }

 

 

解法二:

借助辅助数组实现。

创建大小m的数组S,将A中前m个整数依次暂存在S中,同时将A中后n个元素左移,再将S中暂存的依次放回A中的后续单元。

void Exchange(int A[],int m,int n){  int S[m],i;  for(i=0;i

 

转载于:https://www.cnblogs.com/wyloving/p/8290047.html

你可能感兴趣的文章
django-xadmin设置全局变量
查看>>
Vue安装准备工作
查看>>
.NET 母版页 讲解
查看>>
Android Bitmap 和 Canvas详解
查看>>
最大权闭合子图
查看>>
oracle 创建暂时表
查看>>
201421410014蒋佳奇
查看>>
导入导出数据库和导入导出数据库表
查看>>
linux下操作mysql
查看>>
【03月04日】A股滚动市盈率PE历史新低排名
查看>>
总结:Bias(偏差),Error(误差),Variance(方差)及CV(交叉验证)
查看>>
iOS7 界面适配-NavigationBar StateBar
查看>>
用canvas上传图片
查看>>
五子棋-开发环境搭建过程
查看>>
Java数据结构与算法解析(三)——队列与背包
查看>>
Xcode5和ObjC新特性
查看>>
.Net Discovery 系列之二--string从入门到精通(下)
查看>>
Loadrunner:录制APP脚本
查看>>
jvm slot复用
查看>>
高并发系统数据库设计
查看>>