Util.java
放置了一些排序使用的子函数/** * Util.java ** 工具类 ** @author Administrator */public class Util {/** * 对换数组a两个下标i和j对应的值. ** @param a * @param i * @param j */public static void swap(int[] a, int i, int j) {int temp = a;a = a;a = temp;}/** * 合并数组元素c和c至d中. * 前提:c和c必须是有序的 ** @param c * @param d * @param l * @param m * @param r */public static void merge(int[] c, int[] d, int l, int m, int r) {int i = l, j = m + 1, k = l;while ((i <= m) && (j <= r))if (c <= c)d = c;elsed = c;if (i > m)for (int q = j; q <= r; q++)d = c;elsefor (int q = i; q <= m; q++)d = c;}/** * 把数组元素 b 复制到 a * 前提假设:a,b数组必须等长. ** @param a * @param b * @param left * @param right */public static void copy(int[] a, int[] b, int left, int right){for(int i = left; i <= right; i ++)a = b;}/** * 合并数组x中大小为s的相邻元素到数组y. ** 前提:x,y数组长度相等. ** @param x * @param y * @param s */public static void mergePass(int[] x, int[] y, int s) {int i = 0;int n = x.length;while( n - 2 * s > i) {Util.merge(x, y, i, i + s - 1, i + 2 * s - 1);i += 2*s;}//剩下的元素个数小于2s//元素个数小于2s大于s个if(n - i > s) Util.merge(x, y, i, i + s - 1, n-1);//元素个数小于s个else for(int j = i; j <= n-1; j ++) y = x;}public static void main(String[] args){/*int[] c = new int[]{0,2,3,1};int[] d = new int;merge(c,d,0,2,3);for(int i=0; i<c.length; i++)System.out.println(d);*/System.out.println(1/32);}}
页:
[1]