折半查找法 int a[]={1,4,45,85,65,65,41,42}如何找到45这个数字} 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 先排序 然后 自己 写了,googleor jdk的 binarysearch java.util.Arrays类中:首先Arrays.sort(a);然后调用binarySearch(); 1.快排的思想就是先把数组分成 大于X的和小于X的 那么可以应用快排的思想 ,分别取数组的每个元素 进行快排的第一次分组 然后看看分组的结果 及i=j的地方是不是数组leng的1/2是就证明这个数是中间数(记得备份好原数组)2.也可以直接对数组排序 进行查找 使用2分法查找public static void main(String[] args) { int a[]={1,4,45,85,65,65,41,42} 这里再把a数组由小到大进行排序,代码省略... int seek = 45; // 要查找的值 // 类似于指针的东西 int index = 0; // 查找起始下标 int start = 0; // 查找结束下标 int end = iArray.length - 1; // 计数器 int count = 0; while (true) { count++; // 初始化数组中间值的下标 // 原来为index = (start + end) / 2;当start + end的值超过了最大的正int值的时候, index 会变成负值,这个时候就会抛出异常.故改为这样 index = start + ((end - start) / 2); System.out.println((end - start) / 2); if (iArray[index] < seek) { start = index; } else if (iArray[index] > seek) { end = index; } else { break; } } System.out.println(" 二分法查找,需要比较的次数:" + count); } 如何判断多个区间数否存在相同的数字? 泛型边界控制的用法是??? List<? extends Object> 我在inin()里定义了一个Jtree,那么在1个按钮的actionPerformed里如何再给这个Jtree添加节点。 jdbc连接mysql问题,拜托大家了,弄了一晚上了 itext的使用问题 关于Integer.valueOf? eclipse编写的代码可以编译,将代码在DOS状态下编译通不过,求救!!!! 乱码问题 长度判断问题 软件所的兄弟姐妹请进! 关于字符串的equals与==的问题 HTML标签底层的实现原理、机制
or jdk的 binarysearch
首先Arrays.sort(a);
然后调用binarySearch();
那么可以应用快排的思想 ,分别取数组的每个元素 进行快排的第一次分组 然后看看分组的结果 及i=j的地方是不是数组leng的1/2是就证明这个数是中间数(记得备份好原数组)
2.也可以直接对数组排序 进行查找
int a[]={1,4,45,85,65,65,41,42}
这里再把a数组由小到大进行排序,代码省略...
int seek = 45; // 要查找的值
// 类似于指针的东西
int index = 0;
// 查找起始下标
int start = 0;
// 查找结束下标
int end = iArray.length - 1;
// 计数器
int count = 0;
while (true) {
count++;
// 初始化数组中间值的下标
// 原来为index = (start + end) / 2;当start + end的值超过了最大的正int值的时候, index 会变成负值,这个时候就会抛出异常.故改为这样
index = start + ((end - start) / 2);
System.out.println((end - start) / 2);
if (iArray[index] < seek) {
start = index;
} else if (iArray[index] > seek) {
end = index;
} else {
break;
}
}
System.out.println(" 二分法查找,需要比较的次数:" + count);
}