国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

跳表是用來干什么的

算法與數據結構 ? 來源:后端技術小牛說 ? 作者:后端技術小牛說 ? 2021-11-21 11:20 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

跳表這一數據結構,已經成為了Redis面試的高頻考點。前兩年沒這么卷的時候,可能大家從開始學習,到拿到大廠offer這一過程,都可能沒聽說過跳表這一數據結構。

那什么是跳表呢?它是用來干啥的?AVL樹紅黑樹知道吧,對,跳表跟他干的事情差不多。我舉個例子大家就明白了。假設目前有一個有序數列:

[2, 11,22, 33, 44, 52, 63]

我們想基于單鏈表的思想,設計一個數據結構,實現查找時間復雜度為O(logn)。單鏈表的話,它的結構長這個樣子。

當然這個結構,查找時間復雜度妥妥的O(n),那咋改呢?

那換個問法:一般做算法題,手撕代碼面試的時候,當咱寫了個時間復雜度為O(n)的解法,面試官搖搖頭,問你有沒有更好的方法,你會怎么做?

常見復雜度O(nlogn) O(n) O(logn) O(1),要優化,一步步來的話,只能上O(logn)了,那復雜度logn最常見的算法是哪個?當然是二分!

思路對了,那對著鏈表,咋把二分思想融合進去呢?

要不單鏈表指針這邊動動刀子?讓指針除了指向后面元素,還能越過幾個節點,指向更后面元素?類似二叉查找樹?先來看看這個數組對應的二叉查找樹長什么樣。

當然,由于我們的結構是單鏈表,所以只能有由小值,指向大值,這個二叉樹得改改。

好像有點意思在里面了,再把原先單鏈表的性質加上。

走線有點凌亂,按單鏈表的布局顯示方式改改:(值得注意的是,我們需要新建一個數組項,每個數組項存儲一個指針,指向剛剛二叉搜索樹每一層最左側的節點)

(咋感覺越看越像B+樹了(霧))

來看個查找邏輯吧:

當查找到的結點保存的數,比要查找的數小時,跳表就會繼續訪問該層上的下一個結點。

當不滿足時,跳表就會用到當前查找到的結點的指針數組的下一層指針,然后沿著下一層指針繼續查找。對于這種數據結構,我們需要從上往下依次查詢三個鏈表,比如我們想查大于35的數字。

首先按左側數組第一個找,發現中間節點是33,比較一下比35小。

發現33比35小,跳下一個節點。

發現該節點是Null,跳33的下一層節點。

發現52比35大,再跳下一層節點。

發現44比35大,跳下一層節點,但由于這是最后一層節點,即44是第一個比33大的數,滿足最終條件,就找到了第一個比35大的數字。

我們知道,二叉平衡樹,如果設計插入操作,會特別特別麻煩。對于由二叉平衡樹思想改的跳表也是如此,對于我們這邊的情況,每增加,或者減少一個新節點,每個節點的高度都需要變化。。那有沒有高人改進呢?

既然把二叉平衡樹改成這四不像了,為啥再不改改,能不能讓他不平衡的同時,還能保證查找效率?

說實話,還真可以,來看看這種跳表。

雖然這個跳表跟咱剛剛講的跳表比起來,奇形怪狀的,但按剛剛的查找思路,還是能做比較好的查詢工作的。

而且既然表都長這么奇形怪狀了,那添加或者刪新元素,其他節點高度不變問題也不大了。

而且驚人的是,如果我們對新插入節點的高度進行隨機產生(每次隨機大于p,接著往上加高度,小于p停下來),然后別的節點高度保持不變,查找效率還是為O(logn),不會出現像二叉查找樹那種直接退化成O(logn)的情況。

責任編輯:haq

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 數據
    +關注

    關注

    8

    文章

    7335

    瀏覽量

    94773
  • Redis
    +關注

    關注

    0

    文章

    392

    瀏覽量

    12186

原文標題:什么?跳表都不知道的你還敢去面BAT!

文章出處:【微信號:TheAlgorithm,微信公眾號:算法與數據結構】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    不間斷電源是干什么用的?優比施一文講透

    ……這些令人懊惱甚至帶來損失的瞬間,都與一個詞有關——電力中斷。而不間斷電源,正是為解決這些問題而生。今天,優比施電源用最通俗易懂的方式,為您講清楚不間斷電源到底是干什
    的頭像 發表于 03-03 08:48 ?66次閱讀
    不間斷電源是<b class='flag-5'>干什么</b>用的?優比施一文講透

    lora無線數傳電臺能干什么?5KM數據傳輸,代替有線485

    雙向通信,是工業物聯網、智慧農業、智慧城市等場景的“無線串口線”。 一、核心功能(能干什么) 1. 基礎通信能力 - 點對點透明傳輸:兩個電臺配對,串口數據原樣無線轉發,替代長距離RS485/232線纜,無需改協議。 - 點對多點/主從組網:一臺主機帶多臺從機,集中
    的頭像 發表于 02-28 16:37 ?534次閱讀

    新手求問,單片機的引腳為什么要接二極管再接5v?

    如圖所示的幾個4148是干什么用的
    發表于 01-27 14:42

    相控陣芯片頻段到底如何選擇

    相控陣技術早已從軍事雷達滲透到了衛星通信、雷達感測、氣象探測等多個領域。但你知道嗎?決定相控陣芯片 “能干什么” 的核心因素,并非算力,而是它工作的頻段。
    的頭像 發表于 01-26 09:34 ?465次閱讀

    劃片機是干什么用的

    劃片機是干什么用的?在晶圓加工場景中,它也常被稱為晶圓切割機,是半導體制造后道工藝中的核心設備,其核心用途是將完成前道電路制造(如光刻、刻蝕、沉積等)的整片晶圓,沿預設的空白切割道
    的頭像 發表于 01-12 16:33 ?600次閱讀
    劃片機是<b class='flag-5'>干什么</b>用的

    shell基本介紹及常用命令之shell基本介紹

    Shell是什么?我們在剛開始接觸Linux的時候,經常會聽到工程師提到Shell這個詞,剛開始不知道這是個干什么的,簡單的說,它是一個應用,接收用戶命令,調用相應的內核接口函數或應用程序,并輸出
    發表于 09-28 09:05

    加固計算機是用來干什么的

    加固計算機是一種專門為復雜環境和特殊行業應用設計的高性能設備。它不僅具備常規電腦的數據處理和運算功能,更在結構設計、防護等級和硬件配置方面做了全面優化。例如,它的外殼通常采用鎂鋁合金或高強度復合材料,具有防塵、防水、防摔的特性,內部還經過防震加固處理,確保在運輸、跌落或長時間移動中依舊保持穩定運行。某些加固計算機甚至符合軍用標準,能夠適應極端環境和高強度任務需求。
    的頭像 發表于 08-22 09:55 ?553次閱讀

    充電樁為什么離不開電流傳感器?一篇文章帶你了解清楚!

    扮演著非常重要的角色。那么,電流傳感器在充電樁中到底是干什么的?怎么選才靠譜?今天這篇文章,我們就來聊聊這些你可能一直想知道的問題。電流傳感器在充電樁中起什么作用
    的頭像 發表于 08-07 10:23 ?5112次閱讀
    充電樁為什么離不開電流傳感器?一篇文章帶你了解清楚!

    晶振是干什么用的

    在電子設備如繁星般密布于生活各個角落的當今時代,從小巧的智能手表到龐大的服務器,從便捷的手機到家中的智能家電,有一種常常被忽視卻起著關鍵作用的元件——晶振。它體積微小,存在感看似不強,卻宛如電子設備的“心臟起搏器”,默默把控著節奏,維系著整個系統穩定、精準地運行。 提供精準時鐘信號 晶振最基礎且核心的用途,便是生成高度精準的時鐘信號。在數字電路的世界里,眾多芯片、處理器如同訓練有素的士兵,需要依據統一
    的頭像 發表于 06-30 10:44 ?1114次閱讀

    主板上的顯卡的特點是什么?能用來干什么

    在計算機硬件系統中,顯卡是負責處理和輸出圖像的關鍵組件。安裝在主板上的顯卡主要分為集成顯卡和獨立顯卡,它們各自具備獨特的特點,并在不同場景下發揮著重要作用。
    的頭像 發表于 05-22 09:21 ?1081次閱讀

    光纖odf架干什么用的

    光纖ODF架(Optical Distribution Frame,光纖配線架)是光纖通信網絡中用于光纖配線與管理的核心設備,主要承擔光纖線路的連接、分配、調度及保護功能。以下從其核心作用、應用場景及技術優勢三方面展開說明: 一、核心功能 光纖熔接與端接 提供熔接盤、適配器面板等模塊,支持光纖熔接(永久連接)或快速端接(預制成端跳線),實現主干光纜與分支光纜的可靠連接。 類比:如同電路中的“接線板”,將多根光纖有序整合。 線路分配與調度 通過適配器面板
    的頭像 發表于 05-21 13:53 ?1992次閱讀
    光纖odf架<b class='flag-5'>干什么</b>用的

    芯片前端設計與后端設計的區別

    前端設計(Front-end Design):聚焦于電路的邏輯功能實現。本質上是在“紙上”設計電路,包括芯片要“干什么”,要“如何運算”。
    的頭像 發表于 05-16 14:56 ?1300次閱讀

    繼電保護是用來什么的

    繼電保護是電力系統中的“安全衛士”,其核心任務是?快速檢測故障并隔離故障區域?,確保電力設備免遭損壞、防止停電范圍擴大,同時維護電網的穩定運行。在現代電力系統中,繼電保護裝置如同人體的免疫系統,能夠在毫秒級時間內識別異常并采取行動,是保障供電安全的核心技術之一。 一、繼電保護的四大核心功能 ?故障檢測? 實時監測電流、電壓、頻率等電氣參數,精準識別短路、過載、接地故障等異常狀態。例如: 短路故障:電流驟增至正常值的數倍至數十倍。 接地故障:中性點電壓偏移或零序電流異常。 ?故障隔離? 通過控制斷路器在?20-100毫秒內?切斷故障線路,避免故障蔓延。例如: 輸電線路發生短路時,距離保護裝置可迅速定位故障點并跳閘。 ?告警與記錄? 觸發聲光報警,并記錄故障波形、動作時間等數據,為后續故障分析提供依據。 ?系統自愈支持? 配合自動化設備(如重合閘裝置),在故障清除后嘗試恢復供電,減少停電時間。 二、繼電保護的組成與工作原理 ?系統架構 ?組件 ?功能? ?測量元件 采集電流互感器(CT)、電壓互感器(PT)信號 ?邏輯判斷單元 分析參數是否符合故障特征(如過流、差動) ?執行元件 驅動斷路器或發信裝置動作 ? ?典型保護原理? ?過電流保護?:檢測電流超過設定閾值(如1.2倍額定電流),適用于配電網線路。 ?差動保護?:比較設備兩端電流差值,若差值超限則判定內部故障(常用于變壓器、發電機)。 ?距離保護?:通過阻抗計算定位故障點位置,適用于長距離輸電線路。 三、繼電保護的應用場景 ?發電環節? 發電機保護:定子接地保護、轉子過負荷保護、失磁保護等。 案例:某水電站因差動保護動作,0.1秒內隔離發電機內部短路,避免機組燒毀。 ?輸電與變電環節? 輸電線路:縱聯保護、光纖差動保護,保障跨區域電網安全。 變壓器:瓦斯保護(非電量)、比率制動差動保護,防止絕緣油分解或繞組故障。 ?配電環節? 配網饋線:過流保護配合自動重合閘,減少用戶停電時間。 數據:90%的配電故障可在300毫秒內隔離并恢復供電。 四、繼電保護的技術演進 ?從電磁式到數字化? ?早期電磁繼電器?:依靠機械觸點動作,響應速度慢(>100ms),維護頻繁。 ?微機保護裝置?:集成DSP芯片,支持多判據融合計算,動作時間縮短至20ms以內。 ?智能化升級? ?廣域保護系統?:基于5G通信實時共享電網狀態,實現跨區域協同控制。 ?AI故障預測?:利用機器學習分析歷史數據,提前預警絕緣老化風險。 ?挑戰與突破? 新能源并網:光伏、風電的波動性要求保護裝置具備自適應能力。 解決方案:引入“方向性過流保護”應對分布式電源雙向電流沖擊。 五、總結 繼電保護是電力系統安全運行的基石,其價值體現在三個方面: ?經濟性?:減少設備損壞帶來的巨額維修成本(如一臺500kV變壓器損壞損失超千萬元)。 ?可靠性?:保障99.99%以上的供電可用性,支撐現代社會穩定運轉。 ?智能化?:隨著數字孿生、邊緣計算等技術的融合,繼電保護正從“被動響應”邁向“主動防御”。 未來,繼電保護將與能源互聯網深度結合,成為構建新型電力系統的核心防線。
    發表于 05-06 10:32

    請問圖片中電路板的功能?

    朋友們幫看看,這電路模塊是干什么用的?
    發表于 04-14 09:40

    綜合配線柜是干什么的

    綜合配線柜(也稱為綜合布線柜或綜合布線系統配線柜)是一種在多個領域中發揮關鍵作用的設備。以下是關于綜合配線柜的詳細介紹: 一、主要作用 集中管理與控制: 綜合配線柜能夠集中管理和控制網絡或電力系統中的線纜和連接設備。通過將各種線纜(如網線、光纖、電話線、電源線等)集中在一個柜子中,可以方便地進行線纜的接入、分配、調度和維護,提高管理效率和便捷性。 保護線纜和設備: 綜合配線柜提供了對線纜和連接設備的物理保護。合
    的頭像 發表于 03-11 11:08 ?1291次閱讀