最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java順序查找算法詳解

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

一、查找的基本概念

在講順序查找法之前先來認(rèn)識(shí)一些關(guān)于查找的基本概念。

1.查找表

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

2.關(guān)鍵字

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

3.查找

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

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

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

5.平均查找長(zhǎng)度

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

二、順序查找法

1.概念

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

2.實(shí)踐

在給定的無序數(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;
        //掃描整個(gè)數(shù)組
        while(i<a.length){
            //將數(shù)組元素一一與給定值key進(jìn)行比較
            if(key==a[i])
                return "查找成功! "+key+"是數(shù)組的第"+(i+1)+"個(gè)元素";//匹配成功則返回
            i++;//當(dāng)前未匹配成功將索引下標(biāo)i后移一位繼續(xù)比對(duì)
        }
        //如果循環(huán)遍歷已經(jīng)結(jié)束了還未找到給定值key則表明數(shù)組中不存在該值,查找失敗
        return "查找失敗,數(shù)組中不存在該元素!";
    }
}

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

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

相關(guān)文章

  • Java實(shí)現(xiàn)導(dǎo)出Word文檔的示例代碼

    Java實(shí)現(xiàn)導(dǎo)出Word文檔的示例代碼

    poi-tl是一個(gè)基于Apache POI的Word模板引擎,也是一個(gè)免費(fèi)開源的Java類庫(kù),你可以非常方便的加入到你的項(xiàng)目中。本文就利用它實(shí)現(xiàn)導(dǎo)出Word文檔功能,需要的可以參考一下
    2023-02-02
  • Mac下如何查看已安裝的jdk版本及其安裝目錄

    Mac下如何查看已安裝的jdk版本及其安裝目錄

    這篇文章主要介紹了Mac下如何查看已安裝的jdk版本及其安裝目錄問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • 關(guān)于java方法區(qū)詳解

    關(guān)于java方法區(qū)詳解

    這篇文章主要介紹了關(guān)于java方法區(qū)的使用解析,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • 值得Java開發(fā)者關(guān)注的7款新工具

    值得Java開發(fā)者關(guān)注的7款新工具

    作為老牌語(yǔ)言Java,其生態(tài)圈也出來了一些有關(guān)云服務(wù)、監(jiān)控、文檔分享方面的工具,這篇文章主要介紹了Java開發(fā)者值得關(guān)注的7款新工具,感興趣的小伙伴們可以參考一下
    2016-07-07
  • 全面解析Spring Security 內(nèi)置 Filter

    全面解析Spring Security 內(nèi)置 Filter

    這篇文章主要介紹了Spring Security 內(nèi)置 Filter的相關(guān)知識(shí),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-07-07
  • Redis緩存實(shí)例分步詳解

    Redis緩存實(shí)例分步詳解

    實(shí)際開發(fā)中緩存處理是必須的,不可能我們每次客戶端去請(qǐng)求一次服務(wù)器,服務(wù)器每次都要去數(shù)據(jù)庫(kù)中進(jìn)行查找,為什么要使用緩存?說到底是為了提高系統(tǒng)的運(yùn)行速度
    2023-04-04
  • java輸入數(shù)字,輸出倒序的實(shí)例

    java輸入數(shù)字,輸出倒序的實(shí)例

    這篇文章主要介紹了java輸入數(shù)字,輸出倒序的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08
  • java使用zookeeper實(shí)現(xiàn)的分布式鎖示例

    java使用zookeeper實(shí)現(xiàn)的分布式鎖示例

    這篇文章主要介紹了java使用zookeeper實(shí)現(xiàn)的分布式鎖示例,需要的朋友可以參考下
    2014-05-05
  • 使用JAVA命令運(yùn)行JAR包以及日志輸出詳解

    使用JAVA命令運(yùn)行JAR包以及日志輸出詳解

    這篇文章主要給大家介紹了關(guān)于使用JAVA命令運(yùn)行JAR包以及日志輸出的相關(guān)資料,文中通過代碼示例介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用java具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-09-09
  • spring如何使用命名空間p簡(jiǎn)化bean的配置

    spring如何使用命名空間p簡(jiǎn)化bean的配置

    這篇文章主要介紹了spring如何使用命名空間p簡(jiǎn)化bean的配置,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-01-01

最新評(píng)論

廊坊市| 白城市| 元江| 遂宁市| 桓仁| 开平市| 东丰县| 红河县| 通道| 洪江市| 徐水县| 都昌县| 巴马| 龙口市| 盐源县| 庄河市| 通江县| 远安县| 嵊泗县| 健康| 桃江县| 铜陵市| 遵义县| 裕民县| 右玉县| 太仓市| 淮滨县| 大厂| 惠安县| 龙泉市| 四会市| 名山县| 辛集市| 梨树县| 集安市| 通辽市| 四平市| 平泉县| 滦平县| 托克逊县| 西城区|