当前位置: 代码迷 >> J2SE >> J2SE基础/数组有关
  详细解决方案

J2SE基础/数组有关

热度:2796   发布时间:2013-02-25 00:00:00.0
J2SE基础/数组相关

/**	 * 数组排序(冒泡)	 * 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;		}	}
?