1.数组的有序插入数据
public void insert(long value) {
int i;
for (i = 0; i < elems; i++) {
if (array[i] > value) {
break;
}
}
for (int j = elems; j > i; j--) {
array[j] = array[j - 1];
}
array[i] = value;
elems++;
}
2.数组的二分查找
public int binardFind(long value) {
// 定义数组的中间位置数组地址
int ins = 0;
// 定义数组的上限和下限
int low = 0, pow = elems;
while (true) {
ins = (low + pow) / 2;
if (array[ins] == value) {
return ins;
} else if (low > pow) {
return -1;
} else {
if (array[ins] > value) {
pow = ins - 1;
} else {
low = ins + 1;
}
}
}
}
3.数组的冒泡排序、选择排序、插入排序
/*
* 冒泡排序
*/
public void bubbleSort(long[] array) {
long tmp;
for (int i = 0; i < array.length - 1; i++) {
for (int j = 0; j < array.length - i - 1; j++) {
if (array[j] > array[j + 1]) {
tmp = array[j];
array[j] = array[j + 1];
array[j + 1] = tmp;
}
}
}
}
/*
* 选择排序
*/
public void selectArray(long[] array) {
int min;
for (int i = 0; i < array.length - 1; i++) {
min = i;
long tmp;
for (int j = i + 1; j < array.length; j++) {
if (array[j] < array[min]) {
min = j;
}
}
tmp = array[i];
array[i] = array[min];
array[min] = tmp;
}
}
/*
* 插入排序
*/
public void insertSort(long[] array) {
long select;
for (int i = 1; i < array.length; i++) {
select = array[i];
int j = 0;
for (j = i; j > 0 && array[j - 1] >= select; j--) {
array[j] = array[j - 1];
}
array[j] = select;
}
}