二分法查找
知道原理就好写,在有序表中,取中间元素作为比较对象,若给定值与中间元素相等,则查找成功;若给定值小于中间元素,则在中间元素的左半区继续查找;若给定值大于中间元素,则在中间元素的右半区继续查找。不断重复上述过程,直到找到为止。(1)待查找的列表必须有序。
(2)必须使用线性表的顺序存储结构来存储数据。
public class MainActivity extends AppCompatActivity { int[] arr = new int[]{1, 3, 5, 6, 7, 8, 9}; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); int erfen = erfen(arr, 8); System.out.println(erfen +"数组下标"); } public int erfen(int[] array, int target) {//返回下标index int start = 0; int end = array.length - 1; while (true) { int mid = (start + end) / 2; if (array[mid] == target) { return mid; } else if (array[mid] > target) { end = mid - 1; } else { start = mid + 1; } } } }