數據結構常見問題合集

麪筋分類彙總-測開向

排序算法的複雜度、穩定性、內部外部排序

  • 快排的時間複雜度(NlogN)、最壞狀況(N^2)html

  • 快速排序:程序員

    • 首先任意選取一個數據(一般選用數組的第一個數)做爲關鍵數據,而後將全部比它小的數都放到它左邊,全部比它大的數都放到它右邊,這個過程稱爲一趟快速排序。
    • 快速排序不是一種穩定的排序算法,也就是說,多個相同的值的相對位置也許會在算法結束時產生變更。

基礎數據結構

  • 數組和鏈表的區別算法

    • 數據中數組的內存是順序存儲的,而鏈表是隨機存取的。
    • 數組隨機訪問效率很高,但插入刪除操做的效率比較低。
    • 鏈表在插入刪除操做上相對數組有很高的效率,而若是訪問鏈表中的某個元素,那就要從表頭逐個遍歷,直到找到所須要的元素爲止,因此鏈表的隨機訪問效率比數組低。
    • 鏈表不存在越界問題,數組有越界問題。
    • 數組節省空間可是長度固定。鏈表雖然變長,可是佔了更多的存儲空間。
    • 靜態)數組從棧中分配內存空間,對於程序員方便快速,可是自由度小。鏈表從堆中分配空間,自由度大,但申請管理比較麻煩。
  • 數據結構上的堆和棧有什麼區別、底層結構是什麼數組

    • 1.棧內存存儲的是局部變量,基本類型的變量表示的是數據自己;而堆內存存儲的是實體,每一個實體對象都有地址值和默認初始化值;
    • 2.棧內存的讀取和更新速度要快於堆內存,由於局部變量的生命週期很短;
    • 3.棧內存使用一級緩存,存放的變量生命週期一旦結束就會被釋放;而堆內存使用二級緩存,存放的實體會被垃圾回收機制不定時的回收。

索引提到了B樹
樹是用什麼存儲的,可不能夠用數組存儲
紅黑樹
最大的K個數用什麼排序算法,複雜度、一樣是NlogN, 快排和堆排序有什麼區別。緩存

END

相關文章
相關標籤/搜索