本文內容:html
- 本章內容的小結
- 完成做業或實踐時解決困難的經驗分享
- 參考資料、說明推薦理由及列出相關連接(或書目名稱,具體頁碼)
- 目前學習過程當中存在的困難,待解決或待改進的問題
- 接下來的目標
順序表通常表現爲數組,使用一組地址連續的存儲單元依次存儲數據元素算法
(1)長度固定,必須在分配內存以前肯定數組的長度,固然你可使用vector容器來實現動態存儲。數組
(2)存儲空間連續,即容許元素的隨機訪問。學習
(3)存儲密度大,內存中存儲的所有是數據元素。spa
(4)要訪問特定元素,可使用索引訪問,時間複雜度爲O(1).設計
(5)要想在順序表中插入或刪除一個元素,都涉及到以後全部元素的移動,所以時間複雜度爲O(n).指針
註解:每次擴容的時候,都須要將舊的數據所有複製一份,會影響效率。不過實際上使用順序表比鏈表的效率高。htm
表中的每一個節點都保存有指向下一個節點的指針,全部節點串成一條鏈。根據指針的不一樣,還有單鏈表、雙鏈表和循環鏈表的區分。blog
單鏈表是隻包含指向下一個節點的指針,只能單向遍歷。索引
雙鏈表即包含指向下一個節點的指針,也包含指向前一個節點的指針,所以能夠雙向遍歷。
因爲鏈表是使用指針將節點連起來,所以無需使用連續的空間,它具備如下特色:
(1)長度不固定,能夠任意增刪。
(2)存儲空間不連續,數據元素之間使用指針相連,每一個數據元素只能訪問周圍的一個元素(根據單鏈表仍是雙鏈表有所不一樣)。
(3)存儲密度小,由於每一個數據元素,都須要額外存儲一個指向下一元素的指針(雙鏈表則須要兩個指針)。
(4)要訪問特定元素,只能從鏈表頭開始,遍歷到該元素,時間複雜度爲O(n) 。
(5)在特定的數據元素以後插入或刪除元素,不涉及到其餘元素的移動,所以時間複雜度爲O(1)。
(6)雙鏈表還容許在特定的數據元素以前插入或刪除元素。
註解:鏈表的耗時大約是順序表的 4倍左右。由於數組只須要不多的幾回大塊內存分配,而鏈表則須要不少次小塊內存分配,內存分配操做相對是比較慢的,於是大大拖慢了鏈表的速度。這也是爲何會出現內存池。
推薦在博客園上關注一些技術大牛博主,遊覽他們的博文進行自學提高自我價值,多多百度或谷歌,能夠在公衆號上關注一些不錯的技術分享者。
推薦大佬博客:
https://www.cnblogs.com/Roni-i/
https://www.cnblogs.com/AlvinZH/category/993446.html
擔任多重職位、多個社團、多個兼職,在平衡本身的課外時間和學習時間上存在問題,須要不斷調整自我發展狀況,退出一些已對本身無提高價值的社團。
關於課內的困難:這個學期的課本上的代碼又不少都是僞代碼,但願老師可以拿一種具體語言來操做加深咱們對概念的理解。
(1)準備三月底的程序設計天梯賽,學習各種算法
(2)初步入門天然語言模型創建,幫助樹蛙項目組完成數據流、模型的搭建。
(3)深刻學習後期特效技術