使用Java完成《算法导论》习题2.3-5
2015-06-13 11:16
274 查看
public class BinarySreach2_3_5 { /** * 在已排序的序列中进行二分查找 * @date 2015-6-13 * @author lemma */ // doSreach方法 public int doSreach(int Data[], int target) { // 标记序列的头、尾和中点 int start = 0; int end = Data.length - 1; int middle = (start + end) / 2; int indexTarget = -1; // 二分查找 for (; start <= end;) { // 如果middle等于target则终止查找 if (Data[middle] == target) { indexTarget = middle; break; } // 如果middle比target大,则查找左半部分 else if (Data[middle] > target) { end = middle - 1; middle = (start + end) / 2; } // 如果middle比target小,则查找右半部份 else if (Data[middle] < target) { start = middle + 1; middle = (start + end) / 2; } } //返回目标的数组下标 return indexTarget; } public static void main(String args[]) { BinarySreach2_3_5 bs = new BinarySreach2_3_5(); int Data[] = { 1, 5, 9, 15, 45, 87, 97, 124 }; int number = 87; if (bs.doSreach(Data, number) != -1) System.out.println(Data[bs.doSreach(Data, number)]); else System.out.println("The Number is not existed"); } }
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树
- [原创]java局域网聊天系统