查找算法Java实现
来源:互联网 发布:java工作流视频教程 编辑:程序博客网 时间:2024/05/21 09:04
package meify.query;
/**
* @description 查找demo
* @version 1.0
* @author meify 2013-8-1 上午9:55:11
*/
public class QueryDemo {
/**
* 顺序查找
* @param array
* @param n
* @return
* @version 1.0
* @description 最基本简单的查找,一一比对
* @author meify 2013-8-1 上午10:00:58
*/
public int seqSearch(int[] array,int n){
int len=array.length;
int index=-1;
for(int i=0;i<len;i++){
if(array[i]==n){
index=i;
break;
}
}
return index;
}
/**
* 折半查找
* @param array
* @param n
* @return
* @version 1.0
* @description 首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,
* 如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,
* 如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一子表。
* 重复以上过程,直到找到满足条件的记录,使查找成功,或直到子表不存在为止,此时查找不成功。
* @author meify 2013-8-1 上午10:01:47
*/
public int binSearch(int[] array,int n){
int index=-1;
int p=array.length/2;
while(p<array.length&&p>-1){
if(array[p]==n){
index=p;
break;
}
if(n<array[p]){
p=(0+p)/2;
}
if(n>array[p]){
p=(p+array.length)/2;
}
}
return index;
}
public static void main(String[] args) {
int[] arr={1,2,5,8,10,14,15,18};
QueryDemo demo=new QueryDemo();
int index=demo.binSearch(arr, 5);
System.out.println("5的位置是"+index);
}
}
/**
* @description 查找demo
* @version 1.0
* @author meify 2013-8-1 上午9:55:11
*/
public class QueryDemo {
/**
* 顺序查找
* @param array
* @param n
* @return
* @version 1.0
* @description 最基本简单的查找,一一比对
* @author meify 2013-8-1 上午10:00:58
*/
public int seqSearch(int[] array,int n){
int len=array.length;
int index=-1;
for(int i=0;i<len;i++){
if(array[i]==n){
index=i;
break;
}
}
return index;
}
/**
* 折半查找
* @param array
* @param n
* @return
* @version 1.0
* @description 首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,
* 如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,
* 如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一子表。
* 重复以上过程,直到找到满足条件的记录,使查找成功,或直到子表不存在为止,此时查找不成功。
* @author meify 2013-8-1 上午10:01:47
*/
public int binSearch(int[] array,int n){
int index=-1;
int p=array.length/2;
while(p<array.length&&p>-1){
if(array[p]==n){
index=p;
break;
}
if(n<array[p]){
p=(0+p)/2;
}
if(n>array[p]){
p=(p+array.length)/2;
}
}
return index;
}
public static void main(String[] args) {
int[] arr={1,2,5,8,10,14,15,18};
QueryDemo demo=new QueryDemo();
int index=demo.binSearch(arr, 5);
System.out.println("5的位置是"+index);
}
}
- 查找算法Java实现
- 算法:查找----二分查找(Java实现)
- [查找算法]--二分查找的Java实现
- Java实现二分查找算法
- java 二分查找算法实现
- 二分查找算法java实现
- 常见查找算法Java实现
- 二分查找算法----java实现
- 常见查找算法(Java实现)
- java实现常见查找算法
- Java实现二分查找算法
- java实现的二分查找算法
- java实现二叉树算法 - 查找
- java语言实现二分查找算法
- 常用排序、查找算法java实现
- Java数据结构 遍历 排序 查找 算法实现
- 二分查找算法的JAVA实现
- 【算法数据结构Java实现】折半查找
- 排序算法Java实现
- iOS: UIScrollView的方法touchesShouldBegin:withEvent:inContentView:
- HDU1251 统计难题 解题报告--字典树
- 继承 实现 依赖 关联 聚合 组合之间的关系和联系
- python84
- 查找算法Java实现
- iOS: UIScrollView的方法touchesShouldCancelInContentView:
- LXC 轻量级虚拟化
- 处理异常
- iOS: UIScrollView的方法zoomToRect:animated:
- 通过 WM_CTLCOLOR 设置VC 组合框显示属性(字体、颜色、背景)
- Page Redirect Speed Test
- hdu Questions and answers
- 对称子字符串的最大长度