9.11排序与查找(一)——给定两个排序后的数组A和B,当中A的末端有足够的缓冲空间容纳B。将B合并入A并排序
2017-07-29 20:39
435 查看
/**
* 功能:给定两个排序后的数组A和B,当中A的末端有足够的缓冲空间容纳B。将B合并入A并排序。
*/
* 功能:给定两个排序后的数组A和B,当中A的末端有足够的缓冲空间容纳B。将B合并入A并排序。
*/
/** * 问题:假设将元素插入数组A的前端,就必须将原有的元素向后移动,以腾出空间。 * 思路:将元素插入数组A的末端。 * * 注意:在处理完B的元素之后,不须要复制A的剩余元素,由于那些元素原本就在A中。 * @param a * @param b * @param lastA * @param lastB */ public static void merge(int[] a,int[] b,int lastA,int lastB){ int indexA=lastA-1; int indexB=lastB-1; int indexMerged=lastA+lastB-1; while(indexA>=0&&indexB>=0){ if(a[indexA]>b[indexB]){ a[indexMerged]=a[indexA]; indexMerged--; indexA--; }else{ a[indexMerged]=a[indexB]; indexMerged--; indexB--; } } while(indexB>=0){ a[indexMerged]=a[indexB]; indexMerged--; indexB--; } }
相关文章推荐
- 9.11排序与查找(一)——给定两个排序后的数组A和B,其中A的末端有足够的缓冲空间容纳B。将B合并入A并排序
- 给定两个排序后的数组A和B,其中A的末端有足够的缓冲空间容纳B。将B合并入A并排序
- 程序员面试金典: 9.11 排序与查找 11.1给定两个排序后的数组A和B,其中A的末端有足够的缓冲容纳B。编写一个方法,将B合入A并排序。
- 【Java】两个排序后的数组A和B,其中A的末端有足够的缓冲容纳B。编写一个方法,将B合并入A并排序。
- 给定两个排序的数组,其中A有足够空间容纳B,实现一个方法将B容纳进A并排序
- 剑指offer2.3.2字符串:有两个排序的数组A1和A2,内存在A1的末尾有足够多的空余空间容纳A2,编写一个函数,将A2合并到A1并排序
- 有两个排序数组A1和A2,内存在A1的末尾有足够多的空余空间容纳A2,实现一个函数,把A2 插入到A1,并且是有序的。
- 在排序数组中查找和为给定值的两个数字
- 有两个升序排列的数组A1和A2,给A1开辟的剩余内存有足够空间容纳A1,请实现一个函数,把A2中所有数字插入到A1中,并且是按照升序排列的
- 程序员面试题精选100题(10)-在排序数组中查找和为给定值的两个数字
- 在排序数组中查找和为给定值的两个数字 C++实现
- 9.11排序与查找(三)——给定一个排序后的数组,包含n个整数,但这个数组已被旋转过多次,找出数组中的某个元素
- 在排序数组中查找和为给定值的两个数字
- (08) [转载]- 在排序数组中查找和为给定值的两个数字
- 9.11排序与查找(三)——给定一个排序后的数组,包括n个整数,但这个数组已被旋转过多次,找出数组中的某个元素
- 有两个升序排列的数组A1和A2,给A1开辟的剩余内存有足够空间容纳A1,请实现一个函数,把A2中所有数字插入到A1中,并且是按照升序排列的
- 程序员面试题精选100题(10)-在排序数组中查找和为给定值的两个数字
- 在排序数组中查找和为给定值的两个数字
- 在排序数组中查找和为给定值的两个数字
- 程序员面试题精选100题(10)-在排序数组中查找和为给定值的两个数字