顺序查找(JAVA)

活动地址:CSDN21天学习挑战赛

学习知识点

1.什么是算法
2.时间复杂度
3.空间复杂度
4.什么是查找
5.顺序查找

学习遇到的问题

目前,时间复杂度对我来说有些难以计算

收获

1对算法的理解

算法就是解题步骤
输入是写入的数据,输出是答案
算法就是输入输出中的解题步骤

2对时间复杂度的理解

基本操作的重复执行次数
此处的基本操作指的是:最底层循环控制语句中的判断、赋值、四则判断等
常见的时间复杂度(由低到高):O(1)、O(log2n)、O(n)、O(nlog2n)、O(n2)、O(n3)、O(2n)、O(n!)

3对空间复杂度的理解

程序执行时所需的内存容量
算法运行时需要额外定义多少临时变量/存储结构。
如果用一个临时变量交换两个元素,此时空间复杂度为O(1)。

4对查找/检索的理解

在某种数据结构中找出满足给定条件的元素

5对顺序查找的理解

从数组的一边开始,元素进行逐个比较,如果与给定的待查元素相同,则查找成功;反之,查找失败。

顺序查找的代码

//输入所需要的包
import java.util.Scanner;

public class samp_5{
    public static void main(String[] args) {
    
        System.out.println("需要输入多少数据?");
        //输入固定格式,不做过多解释
        Scanner s=new Scanner(System.in);
        //自定义输入数据数
        int n;
        //输入固定格式,不做过多解释
        //输入数据数
        n=s.nextInt();
        
        //数组存储数据
        int[] a=new int[n];
        //利用for循环控制结构存储数据
        for(int i=0;i<a.length;i++){
            System.out.print("请输入第"+(i+1)+"个数据:");
            a[i]=s.nextInt();
        }
        System.out.println("\n数据输入完毕。");
        System.out.println();

        //定义查找数据key
        int key;
        System.out.print("请输入您要查找的数据:");
        key=s.nextInt();
        System.out.println();

        //调用算法,查找数据位置
        int result = search(a, key);
        //输出数据
        if(result==-1){
            System.out.println("查无此数据");
        }
       else{
        System.out.println("为您查找到的数据结果:\n第"+result+"个数据为"+a[result-1]);
       }
    }

    private static int search(int[] a,int key) {
      //变量初始化
        int i = 0;
       //遍历数组
        while (i < a.length){
           //比较判断,相等时回到数据位置
            if (a[i] == key){
                return i + 1;
            }
            //不相等时,变量+1继续判循环断
            i++;
        }
        //若没有满足条件的,result=search=-1
        return -1;
    }
}

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值