Java实现-合并排序数组
2017-06-18 16:16
246 查看
合并两个排序的整数数组A和B变成一个新的数组。
您在真实的面试中是否遇到过这个题?
Yes
样例
给出A=[1,2,3,4],B=[2,4,5,6],返回 [1,2,2,3,4,4,5,6]
挑战
你能否优化你的算法,如果其中一个数组很大而另一个数组很小?
class Solution {
/**
* @param A and B: sorted integer array A and B.
* @return: A new sorted integer array
*/
public int[] mergeSortedArray(int[] A, int[] B) {
// Write your code here
if(A.length==0)
return B;
if(B.length==0)
return A;
int []C=new int[A.length+B.length];
int i=0;//A
int j=0;//B
int k=0;//C
while(i<A.length&&j<B.length){
if(A[i]>B[j]){
C[k++]=B[j++];
}else{
C[k++]=A[i++];
}
}
while(i<A.length){
C[k++]=A[i++];
}
while(j<B.length){
C[k++]=B[j++];
}
return C;
}
}
您在真实的面试中是否遇到过这个题?
Yes
样例
给出A=[1,2,3,4],B=[2,4,5,6],返回 [1,2,2,3,4,4,5,6]
挑战
你能否优化你的算法,如果其中一个数组很大而另一个数组很小?
class Solution {
/**
* @param A and B: sorted integer array A and B.
* @return: A new sorted integer array
*/
public int[] mergeSortedArray(int[] A, int[] B) {
// Write your code here
if(A.length==0)
return B;
if(B.length==0)
return A;
int []C=new int[A.length+B.length];
int i=0;//A
int j=0;//B
int k=0;//C
while(i<A.length&&j<B.length){
if(A[i]>B[j]){
C[k++]=B[j++];
}else{
C[k++]=A[i++];
}
}
while(i<A.length){
C[k++]=A[i++];
}
while(j<B.length){
C[k++]=B[j++];
}
return C;
}
}
相关文章推荐
- 【LeetCode-面试算法经典-Java实现】【088-Merge Sorted Array(合并排序数组)】
- 两个有序数组的合并排序,Java代码实现,并去重复,考虑空间利用率问题
- 剑指offer面试题java实现之题4之相关题目:两个排序数组合并
- 【Java实现】给出两个整型数组,将他们合并后从小到大排序并输出
- 两个有序数组的合并排序,Java代码实现,并去重复,考虑空间利用率问题
- [转载]:合并两个已排序好的int数组,并排序返回c#实现
- java 数组比较,元素的比较,Comparable,Comparator比较的应用实现,排序,查找示例
- 算法导论Java实现-利用堆合并数组(习题6.5-8) 求高手指导
- java用冒泡发实现数组排序
- 合并两个有序数组Java实现
- Java使用选择排序法对数组排序实现代码
- java类实现数组的五种排序 冒泡排序、选择排序、插入排序、希尔排序、数组排序
- Java实现数组排序总结篇(冒泡,选择,插入,希尔)
- 利用JAVA Comparator接口实现数组排序
- 剑指Offer--面试题17:合并两个排序的链表--Java实现
- java实现合并两个已经排序的列表实例代码
- 算法导论Java实现-合并排序(包含习题2.3-2)
- java数组的排序 对象数组的排序 Comoarable接口实现 compareTo函数实现
- 排序算法的数组实现 -- 合并排序(三)
- 2011-12-04 15:36 JAVA实现位向量给无重复元素的整数数组排序