Java二分法
贴段代码,有少许注释:
package ibees;
import java.util.Arrays;
public class BinarySearch {
/**
* @param args
*/
public static void main(String[] args) {
double[] src = new double[]{1.3,9.9,10.89,12.89,89.0};
System.out.println(new BinarySearch().binarySearch(src, 89.0));
}
/**
* 二分法查找
* */
public int binarySearch(double[] src, double des){
Arrays.sort(src);
int beginIndex = 0;
int endIndex = src.length-1;
int middle = (endIndex+beginIndex)/2;
while(src[middle] != des && beginIndex != endIndex){
//最后两项
if(beginIndex+1 == endIndex){
if(src[beginIndex] == des){
return beginIndex;
}else if(src[endIndex] == des){
return endIndex;
}else{
return -1;
}
}
//判断中间的数与给定数之间的关系
if(des > src[middle]){
beginIndex = middle+1;
}else if(des < src[middle]){
endIndex = middle-1;
}else{
return middle;
}
middle = (endIndex + beginIndex)/2;
}
return middle;
}
}
想想返回的数组索引是不对的。
相关文档:
一般我们在java中运行其它类中的方法时,无论是静态调用,还是动态调用,都是在当前的进程中执行的,也就是说,只有一个java虚拟机实例在运行。而有的时候,我们需要通过java代码启动多个java子进程。这样做虽然占用了一些系统资源,但会使程序更加稳定,因为新启动的程序是在不同的虚拟机进程中运行的,如果有一个进程发生 ......
Java
Java,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台的总称。用Java实现的HotJava浏览器(支持Java applet)显示了Java的魅力:跨平台、动态的Web、Internet计算。从此,Java被广泛接受并推动了Web的迅速发展,常用的浏览器现在均支持Java applet。
Java平台由Java虚拟机(Java Virt ......
java 集合框架(Collection)和数组的排序
根据约定,在使用java编程的时候应尽可能的使用现有的类库,当然你也可以自己编写一个排序的方法,或者框架,但是有几个人能写得比JDK里的还要好呢?使用现有的类的另一个好处是代码易于阅读和维护,这篇文章主要讲的是如何使用现有的类库对数组和各种Collection容器进 ......
第一次发,选个难度适当中的:我刚毕业时参加的一次笔试.
题:对任意输入入的一个字符串,把数字从小到大排列,字母逆序排列,并且输入后字母与数据交替排列。
如:"5s3fa72cs4z134556sdd"执行后为"z1s2s3s3f4d4d5c5a56".
大家可以试一下,共同学习吗?下面是我当场做的,想到哪写到哪,算法肯定不优,仅供参考.
import java.util ......
***此题以考察基础为准,北京的笔试题,可能有人做过
题:写一个程序,解析如下格式的字符串,并将解析的数字序列打印出来。
字符串格式举例: -1~2, 3~3, 5~10, 7~15x3
~ 代表数字的范围, -1~2 代表从-1开始到2之间的所有数字。 3~3 代表从3开始到3的所有数字,也就是3
7~15x3代 ......