线性查找和二分查找的实现

本文展示了线性查找和二分查找两种算法的Java实现,并对比了它们在查找效率上的差异。线性查找适用于无序数组,而二分查找则要求数组必须有序,其效率更高。对于无序数组,线性查找可能更方便,但二分查找在处理大量数据时优势明显。
摘要由CSDN通过智能技术生成
线性查找实现代码
import java.util.Scanner;
public class ArrayTest {
    public static void main(String[] args) {
        String []arr1=new String[]{"a","b","v","d","m","n","u","Y"};
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入你想查找的内容");
        String dest=sc.nextLine();
        boolean isFlag=true;
        for(int i=0;i<arr1.length;i++){
            if(dest.equals(arr1[i])){
                System.out.println("找到了,位置为"+i);
                isFlag=false;
                break;
            }
        }
       if(isFlag){
           System.out.println("很遗憾,没有找到你想要找的内容");
       }

      }
  }

代码注解: 

运行结果: 

 

二分查找的实现代码:

package com.company;

import java.util.Scanner;
public class ArrayTest {
    public static void main(String[] args) {
        int []arr1=new int[]{1,2,5,6,34,65,67,86,99,100};
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入你想查找的内容");
        int dest=sc.nextInt();
        int head=0;
        int lend=arr1.length-1;
        boolean isFlag=true;
        while(head<=lend){
            int middle=(head+lend)/2;
            if(dest==arr1[middle]){
                System.out.println("你要查找的内容已找到,位置为"+middle);
                isFlag=false;
                break;
            }else if(arr1[middle]>dest){
                lend=middle-1;
            }else {
                head=middle+1;
            }
        }
        if(isFlag){
            System.out.println("很遗憾,没有你要查找的内容");
        }
      }
  }
代码注解:
代码注解:
​​​​

 

运行结果:

 

二分查找的好处就是效率高,但是如果数组里面的元素是没有按顺序,则要将重新定义一个数组间将数组里面的值改为有序的才行,但是线性查找就不需要这步骤,直接可以找到数组里面想要查找的值,无论数组是否有序。  

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值