将两个已排序数组原地归并到其中一个数组里去
来源:互联网 发布:程序员联合网开发区 编辑:程序博客网 时间:2024/06/04 22:47
已知A,B两已排序数组,A的缓存足够大,将A与B合并到A中形成一个有序数组。
跟着师兄的代码写的 博客-->http://dwz.cn/as2lK
void insertOnce(int *a,int pos,int len,int val){<span style="white-space:pre"></span>for(int i=len-1;i>=pos;i--)<span style="white-space:pre"></span>{<span style="white-space:pre"></span>a[i+1]=a[i];<span style="white-space:pre"></span>}<span style="white-space:pre"></span>a[pos]=val;}int * insertMerge(int *a,int *b,int lenA,int lenB){<span style="white-space:pre"></span>int *p=a;//int *c=a;<span style="white-space:pre"></span>int j=0;//指向a的下标<span style="white-space:pre"></span>int len=lenA;//zhixiangb<span style="white-space:pre"></span>int count=0;//<span style="white-space:pre"></span>for(int i=0;i<lenB;i++)<span style="white-space:pre"></span>{<span style="white-space:pre"></span>if(a[j]>=b[i])<span style="white-space:pre"></span>{<span style="white-space:pre"></span>insertOnce(a,j,lenA,b[i]);<span style="white-space:pre"></span>j++;<span style="white-space:pre"></span>lenA++;<span style="white-space:pre"></span>}<span style="white-space:pre"></span>else<span style="white-space:pre"></span>{<span style="white-space:pre"></span>while((a[j]<b[i])&&(count<len))//判断是否遍历完a[]<span style="white-space:pre"></span>{<span style="white-space:pre"></span>j++;<span style="white-space:pre"></span>count++;<span style="white-space:pre"></span>}<span style="white-space:pre"></span>if(count>=len)<span style="white-space:pre"></span>{<span style="white-space:pre"></span>a[j++]=b[i];<span style="white-space:pre"></span>lenA++;<span style="white-space:pre"></span>continue;<span style="white-space:pre"></span>}<span style="white-space:pre"></span>insertOnce(a,j,lenA,b[i]);<span style="white-space:pre"></span>j++;lenA++;<span style="white-space:pre"></span>}<span style="white-space:pre"></span><span style="white-space:pre"></span>}<span style="white-space:pre"></span>cout<<lenA<<endl;<span style="white-space:pre"></span>return p;}
void main(){<span style="white-space:pre"></span>int array0[7]={1,3,5,6};//注意长度<span style="white-space:pre"></span>int array1[]={2,3,9};<span style="white-space:pre"></span>insertMerge(array0,array1,4,3);<span style="white-space:pre"></span>for(int i=0;i<7;i++)<span style="white-space:pre"></span>{<span style="white-space:pre"></span>cout<<array0[i]<<" ";<span style="white-space:pre"></span>}}
0 0
- 将两个已排序数组原地归并到其中一个数组里去
- 两个已排序数组的归并
- 归并之将两个有序数组合并(已测试)
- 将两个有序数组归并为一个有序数组
- 将两个有序数组归并成一个有序数组
- 一个面试官经常问到的题,将两个数组合并到一个数组中,并排序。
- 将两个整形数组排序后合并成一个数组
- 将两个数组合并为一个数组并排序
- 合并两个已排序数组
- 两个有序数组归并为一个数组
- 两个有序数组归并为一个有序数组(去重)
- 原地合并两个有序数组
- `## 将一个整数插入到已经按从小到大排序好的整型数组里##
- 将两个有序数组归并为一个升序数组-Java实现
- 将两个已排序的链表归并成一个链表(C++面试题)
- 两段有序数组原地归并
- 原地归并数组 Merge Sorted Array
- 将一个数组里的元素添加到另外一个数组里
- 小白笔记--------------------矩阵连乘问题(求怎么加括号运算量最小)
- 彻底解决Spring mvc乱码
- 在链接里使用thinkphp的U方法
- Oracle 查询
- BorderLayout布局
- 将两个已排序数组原地归并到其中一个数组里去
- 第1周 C Primer Plus(第五版) 数组 程序清单10.1例题
- android view的生命周期
- 托盘程序
- Android的fill_parent和wrap_content
- window 基本命令
- 站点统计的几个参数
- 结构型设计模式-代理模式
- 操作系统进程描述