import java.util.*;
public class Test2
{ /**
* @param args
*/
public static void main(String[] args)
{
// TODO Auto-generated method stub
int[] arr = {1,3,4,5,2,3,4,87,21};
Arrays.sort(arr);
for(int x:arr)
System.out.print(x+" ");
System.out.println();
int num = Arrays.binarySearch(arr,4);
System.out.println(num);
}}
解决方案 »
- 添加和删除数据没有发现LinkedList比ArrayList快
- 穷鬼发帖 求助友友们帮忙给java弄瘦身
- 要用一个数据结构来表示顺序图,怎么表示?
- “JDBC:ODBC”桥接数据库错误,大虾,帮忙!!!!!!!!
- 个很简单的对话框之间的关联问题
- 好多不明白之:接口为什麽可以作为方法的参数,它传递的是什麽
- 问一个java日期型数据的处理问题。
- 关于sybase连接的jdbc url如何描述?在线等!
- 为什么table.getRowCount()都出错,莫名其妙!!!!!!!!!!!
- Jboss中的一个问题(十万火急)
- 将要去华为面试。
- 请问Java连接Access数据库是不是只能通过jdbc-odbc桥连接啊?
使用二进制搜索算法来搜索指定的 int 型数组,以获得指定的值。
必须在进行此调用之前对数组进行排序(通过上面的 sort 方法)。
如果没有对数组进行排序,则结果是不明确的。
如果数组包含多个带有指定值的元素,则无法保证找到的是哪一个。
中文API上直接复制下来的..
1,2,3,3,4,4,5,21,87
第一个4出现在arr[4],哪里不对?
你好好的看看API.
public static int binarySearch(int[] a,int key) 这里的返回值是一个索引。第一个"4"在这个经排序后的数组中的索引不就是4吗?API中是这么说的:返回:
搜索键的索引,如果它包含在列表中;否则返回 (-(插入点) - 1)。
插入点 被定义为将键插入列表的那一点:即第一个大于此键的元素索引,
如果列表中的所有元素都小于指定的键,则为 list.size()。注意,这
保证了当且仅当此键被找到时,返回的值将 >= 0 。