合并两个排序好的数组并升序排序
2018-03-07 21:33
302 查看
合并两个排序好的数组并升序排序public class MergeSortedArray {
public static void mergeSortedArray(int[] a, int[] b, int[] c) {
int i = 0;
int j = 0;
int k = 0;
// 如果a或b有一个遍历完了就停止
while (i < a.length && j < b.length) {
if (a[i] < b[j]) {
c[k++] = a[i++]; // c[k] 赋值为 a[i],先赋值再加1
} else {
c[k++] = b[j++];
}
}
// 如果 i < a.length,说明b都添加进数组c了,只剩下比b大的a,挨个添加就行
while (i < a.length) {
c[k++] = a[i++];
}
while (j < b.length) {
c[k++] = b[j++];
}
}
public static void main(String[] args) {
int[] a = new int[]{1, 2, 5, 10, 11};
int[] b = new int[]{2, 3, 6, 9};
int[] c = new int[a.length + b.length];
mergeSortedArray(a, b, c);
for (int i = 0; i < c.length; i++) {
System.out.print(c[i] + "\t");
}
}
} 执行结果:1 2 2 3 5 6 9 10 11
public static void mergeSortedArray(int[] a, int[] b, int[] c) {
int i = 0;
int j = 0;
int k = 0;
// 如果a或b有一个遍历完了就停止
while (i < a.length && j < b.length) {
if (a[i] < b[j]) {
c[k++] = a[i++]; // c[k] 赋值为 a[i],先赋值再加1
} else {
c[k++] = b[j++];
}
}
// 如果 i < a.length,说明b都添加进数组c了,只剩下比b大的a,挨个添加就行
while (i < a.length) {
c[k++] = a[i++];
}
while (j < b.length) {
c[k++] = b[j++];
}
}
public static void main(String[] args) {
int[] a = new int[]{1, 2, 5, 10, 11};
int[] b = new int[]{2, 3, 6, 9};
int[] c = new int[a.length + b.length];
mergeSortedArray(a, b, c);
for (int i = 0; i < c.length; i++) {
System.out.print(c[i] + "\t");
}
}
} 执行结果:1 2 2 3 5 6 9 10 11
相关文章推荐
- 编写一个程序,输入两个包含 5 个元素的数组,先将两个数组升序排序,然 后将这两个数组合并成一个升序数组(合并排序)。
- LintCode: 合并两个排序好的数组
- 每天一个小算法(1)----合并两个已经排序的数组
- LeetCode --两个排序数组合并问题
- LeetCodet题解--21. Merge Two Sorted Lists(合并两个排序好的链表)
- 今日算法 两个升序的数组进行排序
- 认真对待每一道算法题 之 两个排序好的数组寻找的第k个大的数
- LeetCode第22题--合并两个排序好的链表
- 把两个升序数组按升序合并到另一个数组中
- 面试题整理 4 合并两个排序的数组
- 剑指offer-----合并两个排序的数组
- 已知m和n是已经排序好的数组,从小到大,现在要合并这两个数组内的数到一个数组,仍然要求是从小到大排序
- 合并两个数组为一个数组,并且对新数组进行排序
- p48_合并两个已排序数组
- 13、合并两个排序好的链表
- [转载]:合并两个已排序好的int数组,并排序返回c#实现
- 将两个数组合并为一个数组并排序
- C# 合并两个int数组 合并后根据大小排序 并输出
- 两个数组合并,去掉重复的然后再排序
- 合并两个有序数组并排序