简单二分查找
来源:互联网 发布:力矩电机控制算法 编辑:程序博客网 时间:2024/06/04 01:37
package demo.sufa;
import java.util.Arrays;
/**
* @author ckl
* @date 创建时间:2017年6月28日 下午3:03:54
* @version 1.0
* @parameter
* @since
* @return
*/
public class erfengchazhao {
public static void main(String[] args) {
int[] arr = {234,245,77,3,543,67,78,95,378,678,205,753,457,2903,340};
int searchWord = 6780; //所要查找的数字
// int searchCount = 0;//循环的次数
System.out.printf("普通循环查找%d的次数是%d",searchWord,genetalLoop(arr,searchWord));
System.out.printf("二分法查找%d的次数是%d",searchWord,binarySearch(arr,searchWord));
}
static int genetalLoop(int[] arr,int searchWord) {
int searchCount = 0;
for(int i=0;i<arr.length;i++){
searchCount++;
if(searchWord==arr[i]){
break;
}
if(i==arr.length-1){
System.out.println("找不到");
}
}
return searchCount;
}
static int binarySearch(int[] arr,int searchWord){
Arrays.sort(arr);
System.out.println("\n"+Arrays.toString(arr));
//二分查找
int iIndex = 0;
int iStart = 0;
int iEnd = arr.length-1;
int searchCount = 0;
for(int i = 0;i<=arr.length/2;i++){
if(i==arr.length/2){
System.out.println("找不到");
break;
}
searchCount++;
iIndex = (iStart+iEnd)/2;
if(arr[iIndex]<searchWord){
System.out.println(arr[iIndex]);
iStart = iIndex;
}else if(arr[iIndex]>searchWord) {
System.out.println(arr[iIndex]);
iEnd = iIndex;
}else if(arr[iIndex]==searchWord){
System.out.println("找到了");
System.out.println(arr[iIndex]);
break;
}
}
return searchCount;
}
}
import java.util.Arrays;
/**
* @author ckl
* @date 创建时间:2017年6月28日 下午3:03:54
* @version 1.0
* @parameter
* @since
* @return
*/
public class erfengchazhao {
public static void main(String[] args) {
int[] arr = {234,245,77,3,543,67,78,95,378,678,205,753,457,2903,340};
int searchWord = 6780; //所要查找的数字
// int searchCount = 0;//循环的次数
System.out.printf("普通循环查找%d的次数是%d",searchWord,genetalLoop(arr,searchWord));
System.out.printf("二分法查找%d的次数是%d",searchWord,binarySearch(arr,searchWord));
}
static int genetalLoop(int[] arr,int searchWord) {
int searchCount = 0;
for(int i=0;i<arr.length;i++){
searchCount++;
if(searchWord==arr[i]){
break;
}
if(i==arr.length-1){
System.out.println("找不到");
}
}
return searchCount;
}
static int binarySearch(int[] arr,int searchWord){
Arrays.sort(arr);
System.out.println("\n"+Arrays.toString(arr));
//二分查找
int iIndex = 0;
int iStart = 0;
int iEnd = arr.length-1;
int searchCount = 0;
for(int i = 0;i<=arr.length/2;i++){
if(i==arr.length/2){
System.out.println("找不到");
break;
}
searchCount++;
iIndex = (iStart+iEnd)/2;
if(arr[iIndex]<searchWord){
System.out.println(arr[iIndex]);
iStart = iIndex;
}else if(arr[iIndex]>searchWord) {
System.out.println(arr[iIndex]);
iEnd = iIndex;
}else if(arr[iIndex]==searchWord){
System.out.println("找到了");
System.out.println(arr[iIndex]);
break;
}
}
return searchCount;
}
}
阅读全文
0 0
- 简单的二分查找
- E简单二分查找
- 迭代器简单二分查找
- 简单二分查找
- 简单二分查找
- 简单查找,二分查找,查找子序列
- 二分查找的简单应用
- java二分查找简单算法
- 二分查找的简单实现.
- 二分查找的简单实现
- 简单的二分查找条件
- 最简单的二分查找
- 数组的简单二分查找
- 二分查找及简单应用
- 简单二分查找模板(查找)
- 用php实现简单的二分查找
- 简单的快速排序与二分查找
- HDU-2899(简单数学问题+二分查找)
- 简单冒泡排序
- Python核心基础:之三:封装
- 基于libVLC(VLC SDK)的视频播放Demo——Windows平台
- PHPCMS网站二次开发配置要点
- phpMyAdmin怎么创建数据库如何导入SQL数据文件
- 简单二分查找
- Struts2校验器类型详解
- AQUATONE: A tool for domain flyovers
- jquery中对象object循环遍历的方法
- 使用doublebuffered来解决VB.net中datagridview数据显示和滚动慢和卡顿的问题
- 如何修复Kindle频繁自动锁屏和解锁
- Excel单元格自定义格式的一些基础知识
- RabbitMQ学习之概括
- POJ 3250 Bad Hair Day(单调)