首页 > 编程知识 正文

java二分查找算法代码,java归并排序代码

时间:2023-05-03 05:49:24 阅读:128872 作者:3428

二分搜索又称折半搜索,具有比较次数少、搜索速度快、平均性能好的优点; 缺点是核对表规则,插入删除困难。 因此,混叠搜索方法适于在不频繁改变的情况下搜索频繁有序列表。 首先,假设表中元素按升序排列,将表中间记录的关键字与检索关键字进行比较,两者相等时,检索成功; 否则,使用中间位置记录将表分为前、后两个子表。 如果中间位置记录的关键字大于搜索关键字,则进一步搜索前面的子表。 否则,进一步搜索以下子表: 重复上述过程,直到找到满足条件的记录,并且搜索成功或子表不存在。 此时搜索不会成功。

一、概念

二分搜索算法又称折半搜索,是一种在有序数组中搜索特定元素的搜索算法。

二、算法思想

搜索过程从数组的中间元素开始,如果中间元素是要搜索的元素,搜索过程将结束。 如果特定元素大于或小于中间元素,则按大于或小于中间元素的一半搜索数组,并像第一次一样从中间元素进行比较。 如果步长数组为空,则表示找不到。 该检索算法在每次比较时将检索范围缩小一半。

三.优缺点

二分搜索算法的优点是比较次数少、搜索速度快、平均性能好; 缺点是核对表规则,插入删除困难。 因此,二分搜索算法适合于不频繁变动地搜索频繁有序列表。

代码实现:

//*

*二分搜索算法

*

* @param srcArray规则数组

* @查找* @param key元素

* @未找到返回-1的* @return key数组下标

*/

公共类二进制搜索{

publicstaticvoidmain (字符串[ ] args ) {

int [ ] srcarray={ 3,5,11,17,21,23,28,30,32,50,64,78,81,95,101 };

System.out.println ('递归实现: ' Binsearch(Srcarray,0,srcarray.length-1,94 ) );

system.out.println('while循环实现: ' Binsearch(Srcarray,65 );

}

//二分搜索常规周期的实现

隐私保护binsearch (int [ ] srcarray,int key ) {

int mid=srcArray.length/2;

if(key==srcarray[mid]({

返回mid;

}

int start=0;

int end=srcArray.length-1;

wile (开始=结束) {

mid=(开始)/2;

if (密钥)

end=mid-1;

}elseif(keysrcarray[mid] ) )。

开始=mid 1;

}else{

返回mid;

}

}

返回- 1;

}

//二分搜索递归实现

私密性staticintbinsearch (int [ ] srcarray,int start,int end,int key ) {

int mid=(开始)/2;

if(key==srcarray[mid]({

返回mid;

}

if (开始=结束) {

返回- 1;

}elseif(keysrcarray[mid] ) )。

返回二进制搜索(srcarray,mid 1,end,key );

(elseif )密钥

返回二进制搜索(srcarray,start,mid-1,key );

}

返回- 1;

}

}

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。