有序表的插入操作:
public int insert(int num){
int i;
//找出插入点,element为数组的长度
for (i = 0; i <element ; i++) {
if (array[i]>num){
break;
}
}
//插入点之后的数依次后移
for (int j = element; j >i ; j--) {
array[j]=array[j-1];
}
array[i]=num;
//长度加一,长度与索引的关系
element++;
return element;
}
二分查找:
public int binarySearch(int value){
int middle;
int low=0;
//可以为数组长度,也可以为数组的最大下标
int up=element-1;
while (true){
middle=(low+up)/2;
if (array[middle]==value){
return middle;
}else if (low>up){
return -1;
}else if (array[middle]>value){
/*
* 为什么进行middle+-1的操作:
* middle已经与value进行了比对。防止死循环
*/
up=middle-1;
}else if (array[middle]<value){
low=middle+1;
}
}
}