BinnarySearch

二分查找也叫折半查找,二分查找的查找效率是十分高效的。

而想要应用二分查找法,这“一堆数”必须有一下特征:

·        存储在数组中

·        有序排列

所以如果是用链表存储的,就无法在其上应用二分查找法


package com.citi.byteman.test.arithmatic;

public class Dichotomy {
	public static int[] init() {
		int[] list = new int[10];
		for (int i = 0; i < list.length; i++) {
			list[i] = i + 1;
		}
		return list;
	}

	public static int binarySearch(int[] list, int target) {
		list = init();
		int start = 0;
		int end = list.length - 1;
		while (start <= end) {
			int middle = (start + end) / 2;
			if (list[middle] < target) {
				start = middle + 1;
			} else if (list[middle] > target) {
				end = middle - 1;
			} else {
				return middle;
			}
		}
		return -1;
	}

	public static void main(String[] args) {
		int[] list = {};
		System.out.println(binarySearch(list, 50));
	}
}


你可能感兴趣的:(二分查找,BinnarySearch)