查找算法之二分法查找(JAVA)
public class BinarySearch { /** * 二分查找 * 简介: 在二分搜寻法中,从数列的中间开始搜寻,如果这个数小于我们所搜寻的数,由于数列已排序,则该数左边的数一定都小于要搜寻的对象, * 所以无需浪费时间在左边的数;如果搜寻的数大于所搜寻的对象,则右边的数无需再搜寻,直接搜寻左边的数。 * @param nums 待查找数组 * @num 待查找数 */ public static int search(int[] nums, int num) { int low = 0; int high = nums.length - 1; while (low <= high) { int mid = (low + high) / 2; //与中间值比较确定在左边还是右边区间,以调整区域 if (num > nums[mid]) { low = mid + 1; } else if (num < nums[mid]) { high = mid - 1; } else { return mid; } } return -1; } //二分查找的实现 public static void main(String[] args) { int[] nums = { 2, 5, 11, 3, 22, 6, 91, 13, 35, 4 }; //对数组进行排序 QuickSort.sort(nums, 0, nums.length-1); int find = BinarySearch.search(nums,5); if (find != -1) { System.out.println("找到数值于索引" + find); } else { System.out.println("找不到数值"); } } }
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。
- 上一篇: 顺序查找和二分法查找(java代码)
- 下一篇: 实现二分法查找——java实现