折半查找
来源:互联网 发布:最简单的java代码 编辑:程序博客网 时间:2024/06/05 09:30
折半查找思想:在一个有序的数组(int型)中,要快速实现查找一个元素,可以用折半的思想。
1.先获取min,max,mid
2.获取数组为角标为mid的值进行和key比较,从而实现移动min和max,min和max发了生了变化,mid也会随着变化。
3.跳出循环的条件是min>max或者arr【mid】=key。
public static int halfSearch(int arr[],int key){ int min,max,mid; min=0; max=arr.length-1; mid=(min+max)/2; while(arr[mid]!=key){ if(arr[mid]<key)min=mid+1;else if(arr[mid]>key)max=mid-1;if(min>max)return -1;//可能超出范围mid=(min+max)/2;//循环内部mid的变化一直是跟着min和max的 }return mid;}
第二种方法跳出循环的是min>max
public static int halfSearch_2(int arr[],int key){ int min=0,max=arr.length-1,mid; while(min<=max){ mid=(min+max)>>1; if(key>arr[mid]) min=mid+1; else if(key<arr[mid]) max=mid-1; else return mid;//找到了 } return -1;//没有找到,循环结束}
- 折半查找
- 折半查找
- 折半查找
- 折半查找
- 折半查找
- 折半查找
- 折半查找
- 折半查找
- 折半查找
- 折半查找
- 折半查找
- 折半查找
- 折半查找
- 折半查找
- 折半查找
- 折半查找
- 折半查找
- 折半查找
- 用Java实现自己的数据库OR映射框架
- C#中关于水晶报表绑定dataset
- NavigatorContent visible 显示 隐藏
- 犯晕的函数指针和指针函数
- JDK1.6的JAX-WS编写WebService【转】 生成客户端代码
- 折半查找
- Windows下 emacs 用 mew 收发邮件(Gmail)
- 问题
- 并行数目与并形体对运行效率的影响
- android 中的 Bitmap
- 输出彩色文字到窗口的代码,参考自googletest
- HTTPS的POST登录数据包方式
- 看到这个问题第一眼被蒙了。
- iphone游戏引擎介绍