日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

集合中常用算法总结

發(fā)布時間:2025/3/21 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 集合中常用算法总结 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1,沖突鏈表

沖突鏈表主要用于HashMap,HashTable中,內(nèi)部采用數(shù)組保存鏈表,鏈表內(nèi)部是單向鏈接,插入的時候會采用頭部插入法,

插入的鏈表包裹數(shù)據(jù)都是無序的,由于容量的增加,會導(dǎo)致整個數(shù)據(jù)的重新HASH,所以,兩次循環(huán)同一個HASH鏈表,可以得到不同的順序。

內(nèi)部實(shí)現(xiàn)難點(diǎn)是根據(jù)KEY的HASH值獲取Bucket

?

?

2,雙向鏈表

雙向鏈表相對于數(shù)組其在插入上的操作少了,數(shù)組為了更改下標(biāo),需要移動后面所有的數(shù)組,而雙向鏈表只需要更改兩個引用就可以達(dá)到相同的效果,所有插入的效率遠(yuǎn)遠(yuǎn)高于數(shù)組

?

?

3,紅黑樹

JAVA數(shù)組內(nèi)部采用一種近視平衡二叉樹,紅黑樹來實(shí)現(xiàn)。紅黑樹有比絕對平衡樹更高的插入效率,因?yàn)椴恍枰WC絕對的平衡。

紅黑樹是一種近似平衡的二叉查找樹,它能夠確保任何一個節(jié)點(diǎn)的左右子樹的高度差不會超過二者中較低那個的一陪。具體來說,紅黑樹是滿足如下條件的二叉查找樹(binary search tree):

  • 每個節(jié)點(diǎn)要么是紅色,要么是黑色。
  • 根節(jié)點(diǎn)必須是黑色
  • 紅色節(jié)點(diǎn)不能連續(xù)(也即是,紅色節(jié)點(diǎn)的孩子和父親都不能是紅色)。
  • 對于每個節(jié)點(diǎn),從該點(diǎn)至null(樹尾端)的任何路徑,都含有相同個數(shù)的黑色節(jié)點(diǎn)。
  • 紅黑樹的難點(diǎn)是左旋和右旋

    ?

    ?

    ?

    4,循環(huán)數(shù)組

    循環(huán)數(shù)組內(nèi)部采用數(shù)組實(shí)現(xiàn),只是增加頭和尾的實(shí)現(xiàn),用來實(shí)現(xiàn)棧和隊(duì)列的機(jī)制。其內(nèi)部實(shí)現(xiàn)效率高于雙向鏈表實(shí)現(xiàn)的棧和隊(duì)列。

    ?

    轉(zhuǎn)載于:https://www.cnblogs.com/yeyouya/p/6735212.html

    總結(jié)

    以上是生活随笔為你收集整理的集合中常用算法总结的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。