欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java順序查找算法詳解

 更新時間:2022年08月03日 09:35:57   作者:Aricl.  
順序查找又稱線性查找,主要用于在線性表中進行查找。順序查找通常分為對一般的無序線性表的順序查找和對按關鍵字有序的順序表的順序查找,下面我們來一探究竟

一、查找的基本概念

在講順序查找法之前先來認識一些關于查找的基本概念。

1.查找表

  • 由同一類型的數(shù)據(jù)元素(或記錄)所構成的集合
  • 數(shù)據(jù)元素之間存在完全松散的關系
  • 非常靈活的數(shù)據(jù)結(jié)構

2.關鍵字

  • 關鍵字是數(shù)據(jù)元素(或記錄)中某個數(shù)據(jù)項的值,可以用它標識一個數(shù)據(jù)元素(或記錄)
  • 若關鍵字可以唯一地標識一個記錄,則稱之為主關鍵字
  • 反之,若用以識別若干記錄的關鍵字稱之為次關鍵字
  • 注意,當元素只有一個數(shù)據(jù)項時,其關鍵字即為該數(shù)據(jù)元素的值

3.查找

  • 查找是根據(jù)給定的某個值,在查找表中確定一個關鍵字等于給定值的記錄或者數(shù)據(jù)元素
  • 若表中存在該記錄則查找成功,可返回整個記錄的信息或者指示該記錄在查找表中的位置
  • 若表中不存在該記錄則查找失敗,可返回一個“空”記錄或者“空”指針

4.動態(tài)查找表與靜態(tài)查找表

  • 若在查找的過程中對表做修改操作(如插入或刪除),則相應的表稱之為動態(tài)查找表,否則為靜態(tài)查找表
  • 即動態(tài)查找表的表結(jié)構本身是在查找的過程中所動態(tài)生成的,即在創(chuàng)建表時,對于給定值,若表中存在其關鍵字所對應的記錄,則查找成功返回;否則插入關鍵字等于給定值的記錄

5.平均查找長度

  • 為確定記錄在查找表中的位置,需要和給定值進行比較的關鍵字個數(shù)的期望值,稱為查找算法在查找成功時的平均查找長度(Average Searche Length, ASL)
  • 由于查找算法的基本運算是關鍵字之間的比較操作,故可以使用ASL來衡量評估查找算法的性能
  • 也可以采用一種很直觀的評估方法——程序執(zhí)行所消耗的時間。文章傳送門

二、順序查找法

1.概念

順序查找(Sequential Search)的查找過程為:從表的一端開始,依次將記錄的關鍵字和給定的值進行比較,若某記錄的關鍵字和給定值相等,則為查找成功;反之,若掃描整個表之后,仍然未找到關鍵字和給定值相等的記錄,則為查找失敗。

2.實踐

在給定的無序數(shù)組中查找給定的值

public class DayOne {
    public static void main(String[] args) {
        int []a={8,7,45,99,65,23,21,100};
        int key1=23;
        int key2=666;
        DayOne dayone=new DayOne();
        System.out.print("數(shù)組元素:");
        for(int i=0;i<a.length;i++){
            System.out.print(a[i]+" ");
        }
        System.out.println();
        System.out.println("查找key1的結(jié)果:"+dayone.search(a,key1));
        System.out.println("查找key2的結(jié)果:"+dayone.search(a,key2));
    }
    public  String search(int []a,int key){
        //初始化變量
        int i=0;
        //掃描整個數(shù)組
        while(i<a.length){
            //將數(shù)組元素一一與給定值key進行比較
            if(key==a[i])
                return "查找成功! "+key+"是數(shù)組的第"+(i+1)+"個元素";//匹配成功則返回
            i++;//當前未匹配成功將索引下標i后移一位繼續(xù)比對
        }
        //如果循環(huán)遍歷已經(jīng)結(jié)束了還未找到給定值key則表明數(shù)組中不存在該值,查找失敗
        return "查找失敗,數(shù)組中不存在該元素!";
    }
}

執(zhí)行結(jié)果

到此這篇關于Java順序查找算法詳解的文章就介紹到這了,更多相關Java順序查找內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 通過實例解析Java分布式鎖三種實現(xiàn)方法

    通過實例解析Java分布式鎖三種實現(xiàn)方法

    這篇文章主要介紹了通過實例解析Java分布式鎖三種實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-07-07
  • Java序列化和反序列化示例介紹

    Java序列化和反序列化示例介紹

    大家好,本篇文章主要講的是Java序列化和反序列化示例介紹,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2022-01-01
  • Kafka單節(jié)點偽分布式集群搭建實現(xiàn)過程詳解

    Kafka單節(jié)點偽分布式集群搭建實現(xiàn)過程詳解

    這篇文章主要介紹了Kafka單節(jié)點偽分布式集群搭建實現(xiàn)過程詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-11-11
  • Java線程(Thread)四種停止方式代碼實例

    Java線程(Thread)四種停止方式代碼實例

    這篇文章主要介紹了Java線程(Thread)四種停止方式代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-03-03
  • Springboot整合實現(xiàn)郵件發(fā)送的原理詳解

    Springboot整合實現(xiàn)郵件發(fā)送的原理詳解

    SpringBoot集成郵件服務非常簡單,通過簡單的學習即可快速掌握郵件業(yè)務類的核心邏輯和企業(yè)郵件的日常服務,本文給大家分享Springboot整合實現(xiàn)郵件發(fā)送的原理,一起看看吧
    2021-06-06
  • Java單例模式和多例模式實例分析

    Java單例模式和多例模式實例分析

    這篇文章主要介紹了Java單例模式和多例模式,結(jié)合實例形式分析了java單例模式與多例模式的定義及使用技巧,需要的朋友可以參考下
    2019-07-07
  • ssm框架上傳圖片保存到本地和數(shù)據(jù)庫示例

    ssm框架上傳圖片保存到本地和數(shù)據(jù)庫示例

    本篇文章主要介紹了ssm框架上傳圖片保存到本地和數(shù)據(jù)庫示例,主要使用了Spring+SpringMVC+MyBatis框架集合,有興趣的可以了解一下。
    2017-03-03
  • Java實現(xiàn)表單提交(支持多文件同時上傳)

    Java實現(xiàn)表單提交(支持多文件同時上傳)

    本文介紹了Java、Android實現(xiàn)表單提交(支持多文件同時上傳)的方法,具有一定的參考價值,下面跟著小編一起來看下吧
    2017-01-01
  • 詳解java平臺解析協(xié)議相關備忘

    詳解java平臺解析協(xié)議相關備忘

    這篇文章主要介紹了詳解java平臺解析協(xié)議相關備忘,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-01-01
  • Java使用apache?poi操作excel的方式

    Java使用apache?poi操作excel的方式

    這篇文章主要介紹了Java使用apache?poi進行excel相關操作,本文主要針對Apache?POI對excel的操作進行介紹,主要包括如何創(chuàng)建一個excel、錄入數(shù)據(jù)、讀取excel數(shù)據(jù)的方式,需要的朋友可以參考下
    2022-05-05

最新評論