合并两个有序数组(重新开始)
生活随笔
收集整理的這篇文章主要介紹了
合并两个有序数组(重新开始)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在看分治算法的時候,想先自己寫寫合并的代碼,還是不熟練啊!
為了保持對代碼的敏感度,要保持練習。加油!
public class JustDoIt0803 {/*** 分治算法學習前準備*/public static void main(String[] args) {int[] x = new int[]{1,4,5,33};int[] y = new int[]{2,4,5,7,9,12,45,78};int[] z = mergeArrays(x, y);for (int i = 0; i < z.length; i++) {System.out.print(z[i] + " ");}System.out.println();int[] t1 = null;int[] t2 = null;System.out.println(mergeArrays(t1, t2).length);}/*** * @param x a int array be sorted* @param y a int array be sorted* @return z a int array be sorted merge x and y* 把兩個排序的數組拼接成一個排序的數組*/private static int[] mergeArrays(int[] x, int [] y){if(x == null || y == null){return new int[]{};}int xl = x.length;int yl = y.length;int zl = xl + yl;int[] z = new int[zl];// zl代表數組元素個數if(xl == 0)return y;if(yl == 0)return x;int a = 0;int b = 0;for (int i = 0; i < zl; i++) {if(x[a] < y[b]){z[i] = x[a];a++;}else{z[i] = y[b];b++;}// 拼接尾段if(a >= xl){int tail = yl - b;for(int j = 0; j < tail;j++){z[a+b] = y[b];b++;}break;}if(b >= yl){int tail = xl - b;for(int j = 0; j < tail;j++){z[a+b] = x[a];a++;}break;}}return z;} }
轉載于:https://www.cnblogs.com/killbug/archive/2012/08/03/2622389.html
總結
以上是生活随笔為你收集整理的合并两个有序数组(重新开始)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 男主和女主私奔成功,在车上笑着笑着,最后
- 下一篇: 室内恒温游泳池设备价格多少钱?