折半查找法 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); } 两端小代码,很头疼,希望大家帮我看下。 求java描述或自然语言描述的zip压缩/解压算法 窗口的创建与监听事件的处理不在同一个类,如何实现关闭前一个窗口? 如何对中文进行拼音排序? ◆◆请问《Java编程思想第三版》中文版出版了吗?◆◆ 请提供几个网址 提示的错误是“需要标识符”,就是不明白需要什么标识符? ant 编译时 提示找不到符号 关于编码的问题 请问:java可以做网络操作系统吗? 关于字符串的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);
}