一些知识点
數據結構
?
1 數組和鏈表的區(qū)別
邏輯結構:數據的大小確定,不能動態(tài)增減。鏈式存儲可以適應動態(tài)地增減數據的情況,可以方便地插入、刪除數據線。
內存存儲:數組從棧中分配空間(new為堆上創(chuàng)建);鏈表從堆中分配空間,自由度大膽申請管理比較麻煩。
訪問方式:數組內存連續(xù)存儲;鏈表鏈式存儲,通過指針訪問,效率比數組低。
?
2 快速排序過程
首先,選擇一個基準元素
通過一趟排序把記錄分割成獨立的兩部分,其中一部分記錄的元素值比基準元素值小,另一部分比基準值大
基準元素在中間
然后分別對兩部分用同樣的方法進行排序,直到整個序列有序
?
3 歸并排序
分而治之思想的排序方式,滲透著遞歸。
核心思想是將兩個有序的數列合并成一個大的有序的序列。
比如說有8個數據,首先我們可以把單個元素看成一個有序的子表,每個字表長度為1,然后兩兩歸并,得到4個長度為2的有序表,再進行歸并,如此重復,直到合并成一個長度為n的有序表為止。
?
4 堆排序
堆排序是一種樹形選擇排序方法。在排序過程中,將L[1...n]視為一棵完全二叉樹的順序存儲結構,利用父親節(jié)點和子節(jié)點之間的內在關系,在無序區(qū)選擇關鍵字元素最大(或最小)的元素。
堆的應用:優(yōu)先隊列
?
5 Prim算法和Dijkstra算法的區(qū)別
Dijkstra算法是求起點S到各頂點之間的最短距離
prim算法是最小生成樹算法,與Dijkstra算法的區(qū)別是用集合代替了Dijkstra中的起點
?
?
操作系統(tǒng)
?
6 進程和線程的區(qū)別
進程是資源調度和分配的基本單位,線程是CPU調度和分派的基本單位
一個程序執(zhí)行至少有一個進程,一個進程至少有一個線程,線程依賴進程存在
不同進程間不共享資源,而同一進程的線程共享資源
進程在執(zhí)行過程中擁有獨立的內存空間,線程共享進程的內存
?
7 操作系統(tǒng)的基本功能
(1)處理機管理
(2)存儲管理
(3)文件管理
(4)設備管理
(5)用戶接口
?
8 進程之間的通信方式
低級通信:信號量
高級通信
(1)共享存儲器系統(tǒng)
(2)消息傳遞系統(tǒng)(消息隊列)
(3)管道
?
9 處理機調度算法
先來先服務
最短作業(yè)優(yōu)先
時間片輪轉
高響應比
多級反饋調度
優(yōu)先權調度
?
10 頁面置換算法
最佳置換:淘汰最長時間內不被訪問
先進先出置換算法:淘汰最先進入內存的頁面
最近最久未使用置換算法:淘汰最近最久未使用的頁面,設置訪問字段,記錄上次訪問所所經歷的時間
Clock置換算法:最近未用算法(NRU),設置訪問位,連成循環(huán)隊列。某頁被訪問,訪問位置1。淘汰時檢查訪問位,0則淘汰,若為1,重新置0
最少使用置換算法:淘汰最近時期使用最少的頁面淘汰
?
11 抖動
一個頁面剛被換入內存就又被淘汰,然后又被調入內存,又被淘汰的一種現象。
?
12 磁臂調度算法
先來先服務
最短查找時間優(yōu)先
Scan算法
C-Scan(掃描永遠一個方向)
超強干貨來襲 云風專訪:近40年碼齡,通宵達旦的技術人生總結
- 上一篇: 吴恩达机器学习 -- 神经网络学习
- 下一篇: leetcode-剑指 Offer 44