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 环境变量很简单 :
首先:
1、双击“我的电脑”
2、双击“控制面板”
3、双击“系统”
4、点击“高级”选项卡,
5、点击“环境变量”按钮
其次:
1、变量名: path
变量值: C:\jdk1.6.0\bin;
2、变量名: classpath
变量值: .;%JAVA_HOME%\lib\ ......
原题如下:用1、2、2、3、4、5这六个数字,用java写一个程序,打印出所有不同的排列,如:512234、412345等,要求:"4"不能在第三位,"3"与"5"不能相连。
解题思路:
很明显,这是一个递归算法。我们可以排列将这6个数按从小到大的顺序排一下,如果是1,2,3,4,5,6,那么会有1 ......
Java 语言是一种具有动态性的解释型编程语言,当指定程序运行的时候, Java 虚拟机就将编译生成的 . class 文件按照需求和一定的规则加载进内存,并组织成为一个完整的 Java 应用程序。 Java 语言把每个单独的类 Class 和接口 Implements 编译成单独的一个 . class 文件,这些文件对于 Java 运行环境来说就是一个个可以动态 ......
package com.xiaobian;
public class BubbleSort {
//冒泡排序
public static void bubbleSort(int[] data){
&n ......