您的位置:首页 > 编程语言 > Java开发

java数组之与数组元素查找

2020-02-02 14:30 981 查看

1. 顺序查找

顺序查找是在一个已知无(或有序)序队列中找出与给定关键字相同的数的具体位置。
【算法原理】
让关键字与队列中的数从最后一个开始逐个比较,直到找出与给定关键字相同的数为止。
【算法描述】
public static int ordersearch(int[] arry,int des){
int i=0;
for(;i<=arry.length-1;i++){
if(des==arry[i])
return i;
}
return -1;
}

2. 二分查找

二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好,占用系统内存较少;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。
【算法原理】
假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一子表。重复以上过程,直到找到满足条件的记录,使查找成功,或直到子表不存在为止,此时查找不成功。
【算法要求】
1)必须采用顺序存储结构。
2)必须按关键字大小有序排列。
【算法描述】
public static int binarySearch(Integer[] srcArray, int des) {
//定义起始下标,结束下标
int begin = 0;
int end= srcArray.length - 1;
//确保不会出现重复查找,越界
while (begin <= end) {
//计算出中间索引值
int middle = (begin + end)/2 ;//防止溢出
if (des == srcArray[middle]) {
return middle;
//判断下限
} else if (des < srcArray[middle]) {
end= middle - 1;
//判断上限
} else {
begin = middle + 1;
}
}
//若没有,则返回-1
return -1;
}

  • 点赞
  • 收藏
  • 分享
  • 文章举报
岁月悠悠丶 发布了8 篇原创文章 · 获赞 0 · 访问量 71 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: