日期:2014-05-20 浏览次数:20641 次
/** * 数组排序(冒泡) * eg:[2,3,1] => [1,2,3] * @param array */ static void bubbleSort(int[] array) { // 临时变量 int temp; // 循环排序 for (int i = 0; i < array.length - 1; i++) { // 最大的元素交换到最后 for (int j = 0; j < array.length - 1 - i; j++) { // 交换元素 if (array[j] > array[j + 1]) { temp = array[j]; array[j] = array[j + 1]; array[j + 1] = temp; } } } // 输出 for (int i = 0; i < array.length; i++) { System.out.print(array[i] + "\t"); } } /** * 两数组相同元素(无序) * eg:[1,2,3],[9,3] => [3] * @param a * @param b */ static void findArray1(int[] a, int[] b) { // 循环比较 for (int i = 0, j = 0; i < a.length;) { // 相等 if (a[i] == b[j]) { System.out.print(a[i] + "\t"); i++; j = 0; } else { if (j == b.length - 1) { i++; j = 0; } else j += (j < b.length - 1 ? 1 : 0); } } } /** * 两数组相同元素(有序) * eg:[1,2,3],[3,9] => [3] * @param a * @param b */ static void findArray2(int[] a, int[] b) { // 循环比较 for (int i = 0, j = 0; i < a.length;) { // 相等 if (a[i] == b[j]) { System.out.print(a[i] + "\t"); i++; j = 0; } else if (a[i] > b[j]) { if (j == b.length - 1) { i++; j = 0; } else j += (j < b.length - 1 ? 1 : 0); } else { i++; } } } /* * 判断数组中的相同数 */ static void bitMapTest() { // 定义int数组 int iArray[] = { 5, 2, 3, 2, 1, 2 }; // 确定数组最大值 int max = 0; for (int i = 0; i < iArray.length; i++) { if (max < iArray[i]) max = iArray[i]; } // 确定数组的大小 if (max == 0) max = 1; else max++; // 定义byte数组 byte bArray[] = new byte[max]; // 循环计算重复数字 for (int i = 0; i < iArray.length; i++) { if (bArray[iArray[i]] == 1) System.out.println(iArray[i]); bArray[iArray[i]] = 1; } }?