java线性查找和二分查找
Posted DQ_CODING
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java线性查找和二分查找相关的知识,希望对你有一定的参考价值。
线性查找
package lesson.l7_array;
/**
* Illustration
*
* @author DengQing
* @version 1.0
* @datetime 2022/6/23 14:19
* @function 线性查找
*/
public class LineSearch
public static void main(String[] args)
String[]str="AA","BB","CC";
boolean flag=false;
String dest="BB";
for (int i = 0; i < str.length; i++)
if (dest.equals(str[i]))
System.out.println("已找到元素"+dest+",位置为"+i);
flag=true;
break;
if (!flag)
System.out.println("没有找到元素"+dest);
线性查找-方式2
public class LineSearch2
public static void main(String[] args)
String[]str="AA","BB","CC";
String dest="DD";
int i;
for (i = 0; i < str.length; i++)
if (dest.equals(str[i]))
System.out.println("已找到元素"+dest+",位置为"+i);
break;
if (i==str.length)
System.out.println("没有找到元素"+dest);
二分查找
注意点:二分查找是与中间值做比较
package lesson.l7_array;
/**
* Illustration
*
* @author DengQing
* @version 1.0
* @datetime 2022/6/23 14:43
* @function 二分查找:数组必须有序
*/
public class BinarySearch
public static void main(String[] args)
int[] arr = 1, 2, 3, 4, 5, 10, 20, 100;
int dest = 10;
int left = 0;
int right = arr.length;
boolean flag = false;
while (left <= right)
int middleIndex = (left + right) / 2;
int middle = arr[middleIndex];
if (dest == middle)
System.out.println("已找到" + dest);
flag = true;
break;
// 往前找
else if (dest < middle)
right = middleIndex - 1;
// 往后找
else
left = middleIndex + 1;
if (!flag)
System.out.println("没有找到" + dest);
以上是关于java线性查找和二分查找的主要内容,如果未能解决你的问题,请参考以下文章
学习数据结构笔记 ---查找算法(线性查找,二分查找,插值查找,斐波那契查找)
Java数据结构与算法——线性查找 & 二分查找 & 插值查找