大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節(jié)點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學習攻略 職業(yè)指南 Java工程師修煉手冊:Java數(shù)據(jù)結構面試題

Java工程師修煉手冊:Java數(shù)據(jù)結構面試題

更新時間:2023-01-04 10:36:12 來源:動力節(jié)點 瀏覽1497次

Java數(shù)據(jù)結構面試題一直都是面試官喜歡問到的問題,在我們?nèi)ッ嬖嘕ava的相關崗位時,肯定會被提問到,所以我們就需要提前做好準備,輕松的去應對:

java數(shù)據(jù)結構面試題

1. 數(shù)據(jù)結構定義

數(shù)據(jù)結構是計算機存儲、組織數(shù)據(jù)的方式。數(shù)據(jù)結構是指相互之間存在一種或多種特定關系的數(shù)據(jù)元素的集合。通常情況下,精心選擇的數(shù)據(jù)結構可以帶來更高的運行或者存儲效率。數(shù)據(jù)結構往往同高效的檢索算法和索引技術有關。

  • 數(shù)組:物理存儲單元上連續(xù)、順序的存儲結構
  • 鏈表:鏈表是一種物理存儲單元上非連續(xù)、非順序的存儲結構,數(shù)據(jù)元素的邏輯順序是通過鏈表中的指針鏈接次序?qū)崿F(xiàn)的。
  • 隊列:隊列(queue)是只允許在一端進行插入操作,而在另一端進行刪除操作的線性表。
  • 棧:棧(stack)又名堆棧,它是一種運算受限的線性表。限定僅在表尾進行插入和刪除操作的線性表。這一端被稱為棧頂,相對地,把另一端稱為棧底。
  • 堆:堆通常是一個可以被看做一棵完全二叉樹的數(shù)組對象。將根結點最大的堆叫做最大堆或大根堆,根結點最小的堆叫做最小堆或小根堆。建堆時間復雜度O(n),堆總是滿足下列性質(zhì):堆總是一棵完全二叉樹;堆中某個結點的值總是不大于或不小于其父結點的值;
  • 散列表:(Hash table,也叫哈希表),是根據(jù)關鍵碼值(Key value)而直接進行訪問的數(shù)據(jù)結構

2. 堆的創(chuàng)建、插入、刪除、堆排序

  • 堆的插入:在已經(jīng)建成的最小堆的后面插入元素,堆的結構可能被破壞,再向上調(diào)整使其滿足性質(zhì)。
  • 堆的刪除:刪除時每次刪除堆頂元素,刪除方法:
  1. 將堆中最后一個元素代替堆頂元素。
  2. 將堆中元素個數(shù)減少一個,相當于將堆中最后一個元素刪除。
  3. 此時堆的結構可能被破壞,在向下調(diào)整使其滿足性質(zhì)。
  • 堆排序:
  1. 將堆頂元素與第size-1個元素交換。
  2. hp->size–
  3. 將其余的元素調(diào)整為最小堆
  4. 重復1、2、3步hp->size-1次。

3.布隆過濾器

bloom算法類似一個位圖,用來判斷某個元素(key)是否在某個集合中。和一般的位圖不同的是,這個算法無需存儲key的值,對于每個key,只需要k個比特位,每個存儲一個標志,用來判斷key是否在集合中。

  • 應用場景:比如網(wǎng)絡爬蟲抓取時url去重,郵件提供商反垃圾黑名單Email地址去重,之所以需要k個比特位是因為我們大多數(shù)情況下處理的是字符串,那么不同的字符串就有可能映射到同一個位置,產(chǎn)生沖突。
  • 優(yōu)點:不需要存儲key,節(jié)省空間
  • 缺點:算法判斷key在集合中時,有一定的概率key其實不在集合中,已經(jīng)映射的數(shù)據(jù)無法刪除

4. (Tire)字典樹

  • 定義:又稱單詞查找樹,Trie樹,是一種樹形結構,是一種哈希樹的變種。典型應用是用于統(tǒng)計,排序和保存大量的字符串(但不僅限于字符串),所以經(jīng)常被搜索引擎系統(tǒng)用于文本詞頻統(tǒng)計。它的優(yōu)點是:利用字符串的公共前綴來減少查詢時間,最大限度地減少無謂的字符串比較,查詢效率比哈希樹高。
  • 3個基本性質(zhì):
  1. 根節(jié)點不包含字符,除根節(jié)點外每一個節(jié)點都只包含一個字符;
  2. 從根節(jié)點到某一節(jié)點路徑上經(jīng)過的字符連接起來,為該節(jié)點對應的字符串;
  3. 每個節(jié)點的所有子節(jié)點包含的字符都不相同。

5. 海量數(shù)據(jù)找出前K大的數(shù)

top K類問題,通常比較好的方案是分治+Trie樹/hash+小頂堆(就是上面提到的最小堆),即先將數(shù)據(jù)集按照Hash方法分解成多個小數(shù)據(jù)集,然后使用Trie樹活著Hash統(tǒng)計每個小數(shù)據(jù)集中的query詞頻,之后用小頂堆求出每個數(shù)據(jù)集中出現(xiàn)頻率最高的前K個數(shù),最后在所有top K中求出最終的top K。

以上就是“Java工程師修煉手冊:Java數(shù)據(jù)結構面試題”,你能回答上來嗎?如果想要了解更多的Java面試題相關內(nèi)容,可以關注動力節(jié)點Java官網(wǎng)。

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 欧美大交乱xxxxbbbb | 日本黄色绿像 | 欧美一级中文字幕 | 一区二区三区在线播放视频 | 久久99热在线观看7 久久99热这里只有精品 | 天天躁狠狠躁夜躁2021 | a色视频| 欧美激情在线精品三区 | 国产成人精品免费视频大 | 不卡一区二区在线观看 | 久草在线视频免费播放 | 伊人tv | 免费一区二区三区免费视频 | 国产精品久久久尹人香蕉 | 亚洲一区二区三区首页 | 天天操国产| 国产精品美女久久久久网 | 97精品久久天干天天蜜 | 欧美精品九九99久久在观看 | 亚洲综合图色 | 亚洲成a人在线播放www | 色婷婷综合网 | 7777奇米 | 伊人99在线观看 | 精品72久久久久久久中文字幕 | 四虎影院在线播放 | 成人亚洲在线观看 | 精品午夜国产在线观看不卡 | 国产高清自拍 | 国产高清一区二区三区四区 | 99热久久精品国产66 | 国内主播大秀福利视频在线看 | 免费乱理伦片在线观看老妇 | 四虎影片国产精品8848 | 欧美日本成人 | 亚洲免费人成在线视频观看 | 一级做a爰片性色毛片2021 | 久久99精品热在线观看15 | 国产精品女仆装在线播放 | 92精品国产成人观看免费 | 国内精品自在自线在免费 |