您的位置:首页 > 编程语言 > Java开发

JAVA数组排序——二分(折半)查找

2016-05-01 15:08 465 查看

JAVA数组排序——二分(折半)查找

/**
*
*Title: project_name
*Description: 对数组的二分查找
*Makedate:2016年5月1日 下午2:57:19
*@author: sunt Email:wnst1990@126.com
*@version: 1.0
*/
public class Demo4 {

public static void main(String[] args) {
/*
* public static int binarySearch(int[] a,int key)使用二进制搜索算法来搜索指定的 int 型数组,以获得指定的值。
* 必须在进行此调用之前对数组进行排序(通过上面的 sort 方法)。如果没有对数组进行排序,则结果是不明确的。如果数组包含多个带有指定值的元素,
* 则无法保证找到的是哪一个。
参数:
a - 要搜索的数组。
key - 要搜索的值。
返回:
搜索键的索引,如果它包含在列表中;否则返回 (-(插入点) - 1)。插入点 被定义为将键插入列表的那一点:即第一个大于此键的元素索引,
如果列表中的所有元素都小于指定的键,则为 list.size()。注意,这保证了当且仅当此键被找到时,返回的值将 >= 0。
*/
//定义一个数组
int [] arr = {12,234,3,5,46,54,7,6,8,7,879,80,989,54,35,3,4234,2312};
printArr(arr);
System.out.println("------------排序之前的数组------------");
Arrays.sort(arr);
printArr(arr);
System.out.println("-----------排序之后的数组----------");
int search = Arrays.binarySearch(arr, 88);
System.out.println("-------要搜索的数组元素-----" + search);
printArr(arr);
System.out.println("------二分法排序之和的数组-----------");

}
/**
* 定义一个方法循环遍历数组
*/
public static void printArr(int arr []){
for (int i = 0; i < arr.length; i++) {
System.out.println("arr[" + i +"] = " + arr[i]);
}
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: