日期:2014-05-20 浏览次数:20828 次
/**
* 数组排序(冒泡)
* 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;
}
}
?