本文共 736 字,大约阅读时间需要 2 分钟。
import java.util.Arrays;/** * 前提是已经由小到大排好序 * {1,2,3,4,5} * * mid = (start + end)/2 * int key = 3; * start<=end 一直找下去 * if(key == list[mid]) return * if(key > list[mid]){//key在mid的右边 * start = mid + 1 * mid = (start + end)/2 * } * if(key < list[mid]){//key在mid的左边 * end = mid - 1 * mid = (start + end)/2 * } */public class BinarySort { public static void main(String[] args) { int [] list = {1,2,3,4,5,6}; Arrays.sort(list); System.out.println(binarySort(list,4)); } private static int binarySort(int[] list, int key) { int start = 0; int end = list.length-1; while(start <= end){ int mid = (start + end) / 2; if(list[mid] == key) return mid; else if(list[mid] < key) start = mid; else end = mid; } return -5; }}
转载地址:http://frqai.baihongyu.com/