您好,登錄后才能下訂單哦!
小編給大家分享一下java中查找算法有哪些,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
順序查找也稱為線形查找,屬于無(wú)序查找算法。
時(shí)間復(fù)雜度為O(n);
元素必須是有序的,如果是無(wú)序的則要先進(jìn)行排序操作。
也稱折半查找,屬于有序查找算法。
復(fù)雜度分析:
最壞情況下,關(guān)鍵詞比較次數(shù)為log2(n+1),
且期望時(shí)間復(fù)雜度為O(log2n);
基于二分查找算法,
將查找點(diǎn)的選擇改進(jìn)為自適應(yīng)選擇,可以提高查找效率。
找最大值最小值的中間值
均勻分布效率高
當(dāng)然,插值查找也屬于有序查找。
復(fù)雜度分析:
查找成功或者失敗的時(shí)間復(fù)雜度均為O(log2(log2n))。
二分查找的一種提升算法,
通過(guò)運(yùn)用黃金比例的概念在數(shù)列中選擇查找點(diǎn)進(jìn)行查找,提高查找效率。
同樣地,斐波那契查找也屬于一種有序查找算法。
二叉查找樹(shù)是先對(duì)待查找的數(shù)據(jù)進(jìn)行生成樹(shù),
確保樹(shù)的左分支的值小于右分支的值,
然后在就行和每個(gè)節(jié)點(diǎn)的父節(jié)點(diǎn)比較大小,查找最適合的范圍
又稱索引順序查找,它是順序查找的一種改進(jìn)方法
將n個(gè)數(shù)據(jù)元素"按塊有序"劃分為m塊(m ≤ n)。
時(shí)間復(fù)雜度為O(1)
以上是“java中查找算法有哪些”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。