目录
类似于二分查找,必须是有序序列的集合

- package sort;
-
- import java.util.Arrays;
-
- public class InsertSort {
- public static void main(String[] args) {
- int[] arr = new int[] {1, 2, 3, 4, 5, 6};
- int i = select(arr, 0, arr.length - 1, 1);
- System.out.println(i);
- }
- public static int select(int[] array, int left, int right, int searchVal) {
- if(left > right || searchVal < array[0] || searchVal > array[array.length - 1]) {
- return -1;
- }
- int mid = left + (right - left)*(searchVal - array[left])/(array[right] - array[left]);
- int midvalue = array[mid];
- if(searchVal > midvalue) {
- return select(array, mid + 1, right, searchVal);
- }else if(searchVal < midvalue) {
- return select(array, left, mid -1, searchVal);
- }else {
- return mid;
- }
- }
- }