基本
public static int time = 0;
public static void insertValueSearchMore(ArrayList<Integer> data, int left, int right, int value, ArrayList<Integer> result){
System.out.println("调用");
if(value<data.get(left) || value> data.get(right)) return;
int mid = left+(right-left)*(value-data.get(left))/(data.get(right)-data.get(left));
int midValue = data.get(mid);
time++;
if(midValue == value){
result.add(mid);
if(left >= right) {
return;
}
else {
int temp = mid;
while (--temp >= 0 && data.get(temp) == value){
result.add(temp);
}
temp = mid;
while (++temp<=data.size() && data.get(temp) == value){
result.add(temp);
}
}
}
else {
if(left >= right) {
return;
}
if(midValue>value)
BinarySearch.binarySearchMore(data,left,mid-1,value,result);
if(midValue<value)
BinarySearch.binarySearchMore(data,mid+1,right,value,result);
}
}