原创 哈希(散列)表、哈希函數基本知識

哈希表 這些查找方法的特點:記錄在表中的位置和其關鍵字間不存在確定關係,查找的過程爲給定值依次和各個關鍵字進行比較,查找的效率取決進行比較的關鍵字個數。它們的平均查找長度(ASL)都不爲0. 若希望ASL=0 方法:預先知道所查

原创 0x14 虛擬內存(上)

一、虛擬存儲技術 背景 代碼必須裝入內存才能執行,但是並不是所有代碼必須全部裝入內存。 錯誤代碼 不常用的函數 大的數據結構 程序部分裝入優點 局部性原理 局部性原理:一個程序只要部分裝入內存就可以運行 整個程序不是同一時間

原创 解決鼠標不能移出視頻框,切換網頁不能播視頻的小竅門

最近大家都在家上網課,但是總有些視頻自己不想看,但是鼠標又不能移出視頻的框的範圍,移出去視頻就暫停播放了,有點麻煩,偶然間我發現瞭解決的小竅門,很方便,分享出來。 其實很簡單,利用瀏覽器的F12,打開控制檯,點擊右側的event

原创 0x13 內存管理(二)

四、頁表結構 例子 一個具有32位邏輯地址空間的系統,頁大小4KB(也就是212),那麼一個頁表最多可包含1M個表項(232/212=220)。 假設每個頁表項4個字節,每個進程需4MB空間放頁表,也就是1024個連續頁面來存儲頁

原创 0x15 虛擬內存(下)

四、頁框分配和顛簸 頁框分配 也稱幀分配,就是研究如何爲各個進程分配一定的空閒內存。 如:現有93個空閒頁框和2個進程,那麼每個進程各得到多少頁框? 頁框分配會受到多方面的限制,例如,所分配的頁框不能超過可用頁框的數量,也必須分配

原创 0x12 內存管理(一)

長篇預警 一、內存管理背景 內存是現代計算機運行的中心,它是由字或字節組成,每個字或字節都有自己的地址。 基本硬件 程序必須裝入內存才能被執行; CPU可以直接訪問的存儲器只有主存、高速緩存和寄存器; 寄存器通常可在1個(或少

原创 數據結構中的查找(順序查找、折半查找、分塊查找)

查找,就是根據給定的某個值在一組記錄集合中確定某個“特定的”數據元素(記錄)或者找到屬性值符合特定條件的某些記錄。 查找表是由同一類型的數據元素(或記錄)構成的集合。 關鍵字:是數據元素(或記錄)中某個數據項的值,用以標識(識別)

原创 期末複習——遞歸和分治算法

分治算法 分治法是算法設計領域一種非常重要的算法設計策略。 分治法,顧名思義就是用我們平常所說的“分而治之”的思想來解決複雜的、難以直接解決的問題。 如:Hanoi塔問題。 許多著名算法都是採用了分治法的算法思想,如:排序算法中

原创 期末複習——循環鏈表

應用實例 約瑟夫環問題 約瑟夫環(Josephus)問題是由古羅馬的史學家約瑟夫(Josephus)提出的。這個問題最初的原型是約瑟夫在公元70年的時候,在抗擊羅馬的戰鬥中一直進行頑強的抵抗,守住了裘達伯特城達47天之久,最後城

原创 0x10 進程同步

多道程序設計技術是現代操作系統的基礎。在進程併發執行時。各個協同進程運行次序的不同會導致不同的運行結果,從而出現運行錯誤。 數據不一致性 多道程序設計技術和多核處理器在觀代操作系統中廣泛應用,系統中的多個進程併發或並行執行已經

原创 期末複習——隊列的概念及應用

隊列的概念 隊列:限定所有的插入操作在表的一端進行,而刪除操作在表的另一端進行的線性表。 允許進行插入操作的一端稱爲隊尾(rear),允許進行刪除操作的一端稱爲隊頭(front)。 特點:先進先出 隊列的基本操作 隊列初始化:

原创 期末複習——線性表的概念及順序存儲

之前學的時候沒太在意,現在期末複習的時候還是做一下筆記吧,不然內心有點不安φ(..) 線性表的概念 定義:線性表是由n(n≥0)個類型相同的數據元素a1,a2,…,an組成的有限序列,記作(a1,a2,…,an)。 數據元素之

原创 期末複習——一元多項式的表示及運算

一個一元多項式pn(x)可按升冪的形式寫成: pn(x) = p0+p1X+p2X2+p3X3+…+pnXn 可以用線性表存儲:(p0,p1,p2,…,pn) 例:2+x5+10x100 可以只存儲非0項,用單鏈表存儲多項式的結點

原创 期末複習——單鏈表及其基本操作

單鏈表的概念 定義:採用鏈式存儲結構的線性表稱爲鏈表。 從實現角度可以分爲: 靜態鏈表、動態鏈表; 從鏈接方式可以分爲: 單鏈表、雙向鏈表、循環鏈表; 單鏈表:鏈表中的每一個結點只有一個指針域。 單鏈表包括兩個域: 數據域:用來

原创 0x18 大容量存儲器結構

一、磁盤結構和管理 磁盤結構 盤片是存儲數據的介質,正反兩面可以存儲數據; 磁頭可以讀寫數據,沿磁盤半徑移動,有多少盤面就有多少磁頭; 主軸由馬達驅動,使盤片以固定速度旋轉。 磁盤和計算機之間有接口,用於數據傳輸,例如EIDE,