首页 > 学院 > 开发设计 > 正文

复习折半查找的两种实现方法

2019-11-14 23:09:42
字体:
来源:转载
供稿:网友
复习折半查找的两种实现方法

折半查找:必须是在有序的表中进行。这是重要的一点。这折半查找提高了效率。

1.待查找数据值比中间元素值小,则以整个查找范围的前半部分作为新的查找范围。

2.待查找数据值比中间元素值大,则以整个查找范围的后半部分作为新的查找范围。

一种是实现的角标;一种是直接实现的数值。

//折半查找就是找到,必须是有序的列表。public class halfsearch {public static void mian(String args[]){int[]arry={1,10,51,3,4,5};int jg=halfSearch(arry, 2);System.out.PRint(jg);}//折半查找第一种方法 public static int halfSearch(int[] arry,int key){ int min=0; //最大的角表; int max=arry.length-1; int mid; while(max>min){ mid=(min+max)/2; if(key>mid){ min=mid+1; } else if(key<mid) { max=mid=1; }else //返回的是角标 return mid; } //不再范围内的时候就是越界反悔-1return -1; }//第二种方法 public static int halfSearch_2(int[] arry,int key){ int min=0; int max=arry.length-1; int mid=(min+max)/2; //比较的是中间的值和要找的值进行比较 while(key!=arry[mid]){ if(key>arry[mid]){ min=mid+1; }else if(key<arry[mid]){ max=mid-1; } //如果最大的值和最小的值重合以后返回-1 else if(min>max){ return -1; } mid=(min+max)/2; } return mid; }}


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表