排序
private int[] arrA = {3, 2, 19, 5, 23, 28, 19, 6, 1};
//冒泡排序
//相邻的元素 依次比较,把值大的元素放在 数列的头部或者尾部
private void sort1() {
int temp = 0;
for (int i = 0; i < arrA.length - 1; i++) {
for (int j = 0; j < arrA.length - 1 - i; j++) {
//
if (arrA[j] > arrA[j + 1]) {
temp = arrA[j];
arrA[j] = arrA[j + 1];
arrA[j + 1] = temp;
}
}
}
//打印
for (int i = 0; i < arrA.length - 1; i++) {
System.out.print(arrA[i] + "");
}
}
//选择排序
//数列中 的元素依次和其他元素比较,把值大的元素放在 数列的头部或者尾部
private void sort2() {
int temp = 0;
for (int i = 0; i < arrA.length - 1; i++) {
for (int j = arrA.length - 1; j > i; j--) {
//
if (arrA[i] > arrA[j]) {
temp = arrA[i];
arrA[i] = arrA[j];
arrA[j] = temp;
}
}
}
//打印
for (int i = 0; i < arrA.length - 1; i++) {
System.out.print(arrA[i] + "");
}
}
查找
//二分查找,比较key和中间值并收缩范围
private int find1(int key) {
int left = 0, right = arrA.length - 1, mid = 0;
int result = -1;
while (right >= left) {
mid = (left + right) / 2;
if (key == arrA[mid]) {
result = mid;
return result;
} else if (key > arrA[mid]) {
left = mid;
} else {
right = mid;
}
}
return result;
}
//顺序查找
private int find2(int key) {
for (int i = 0; i < arrA.length - 1; i++) {
if (key == arrA[i]) {
return i;
}
}
return -1;
}