學習筆記4 3 19

2021-09-12 22:05:12 字數 1407 閱讀 5741

(1)演算法複雜度: 除o(1)外,時間複雜度隨問題的規模增大而增大; 演算法的語句頻度越高,高到多出乙個量級,複雜度就變了;演算法不同的策略,複雜度有可能是不同的;演算法的時間複雜度與選擇的程式語言無關。

(2)演算法的5個基本特徵:確定性、有窮性、輸入、輸出、可行性

(3)線性結構是乙個有序資料元素的集合。

資料結構中線性結構指的是資料元素之間存在著「一對一」的線性關係的資料結構,常用的線性結構有:線性表,棧,佇列,雙佇列,陣列,串。非線性結構的邏輯特徵是乙個結點元素可能對應多個直接前驅和多個後繼,如樹,表,多維陣列等。

(4)計算機由運算器、控制器、儲存器、輸入裝置和輸出裝置等五個邏輯部件組成。其中運算器、控制器和暫存器等組成cpu。

(5)管道是一種固定大小的緩衝區,管道對於管道兩端的程序而言,就是乙個檔案,但它不是普通的檔案,它不屬於某種檔案系統,而是自立門戶,單獨構成一種檔案系統,並且只存在於記憶體中。它類似於通訊中半雙工通道的程序通訊機制,乙個管道可以實現雙向的資料傳輸,而同乙個時刻只能最多有乙個方向的傳輸,不能兩個方向同時進行。管道的容量大小通常為記憶體上的一頁,它的大小並不是受磁碟容量大小的限制。當管道滿時,程序在寫管道會被阻塞,而當管道空時,程序在讀管道會被阻塞、

(6)當乙個任務(程序)執行系統呼叫而陷入核心**中執行時,我們就稱程序處於核心執行態(或簡稱為核心態)。

當程序在執行使用者自己的**時,則稱其處於使用者執行態(使用者態)。

核心態: cpu可以訪問記憶體所有資料, 包括外圍裝置, 例如硬碟, 網絡卡. cpu也可以將自己從乙個程式切換到另乙個程式。

使用者態: 只能受限的訪問記憶體, 且不允許訪問外圍裝置. 占用cpu的能力被剝奪, cpu資源可以被其他程式獲取。

(7)記憶體洩漏也稱作「儲存滲漏」,用動態儲存分配函式動態開闢的空間,在使用完畢後未釋放,結果導致一直佔據該記憶體單元。直到程式結束。記憶體洩露是程式設計的bug,與執行緒數無關。

(8)拼接技術:將記憶體中的所有作業進行移動,使它們全都桕鄰接.這樣,即可把原來分散的多個小分割槽拼接成乙個大分割槽,這時就可把作業裝入該區。這種通過移動記憶體中作業的位置,以把原來多個分散的小分割槽拼接成乙個大分割槽的方法。

對換技術:是指把記憶體中暫時不能執行的程序或者暫時不用的程式和資料調出到外存上,以便騰出足夠的記憶體空間,再把已具備執行條件的程序或程序所需要的程式和資料調入記憶體。

spooling技術:為了緩和cpu的高速性與i/o裝置低速性間的矛盾,引入了離線輸入、離線輸出技術。

(9)linux程序間通訊:管道、訊號、訊息佇列、共享記憶體、訊號量、套接字(socket)

linux執行緒間通訊:互斥量(mutex),訊號量,條件變數

windows程序間通訊:管道、訊息佇列、共享記憶體、訊號量 (semaphore) 、套接字(socket)

windows執行緒間通訊:互斥量(mutex),訊號量(semaphore)、臨界區(critical section)、事件(event)

洛谷P4319 變化的道路

題意 給定圖,每條邊都有一段存在時間。求每段時間的最小生成樹。解 動態mst什麼毒瘤.洛谷上還是藍題.線段樹分治 lct維護最小生成樹。對時間開線段樹,每條邊的存在時間在上面會對應到logn個區間。我們先把這些邊加到線段樹對應節點上,但是不在lct上面加。最後掃一遍線段樹。掃到乙個節點的時候把當前節...

學習筆記 雜湊學習筆記

hash基本原理 hash就是乙個像函式一樣的東西,你放進去乙個值,它給你輸出來乙個值。輸出的值就是hash值。一般hash值會比原來的值更好儲存 更小 或比較。那字串hash就非常好理解了。就是把字串轉換成乙個整數的函式。而且要盡量做到使字串對應唯一的hash值。它的主要思路是選取恰當的進製,可以...

學習筆記 CentOS 學習筆記01

簡單的做個課堂筆記 虛擬機器用的是vmware,系統是centos cd etc sysconfig network scripts pwdls 顯示列表 cat ifcfg eth0 檢視檔案內容 vi ifcfg eth0 進入vi編輯器 onboot no 原始設定 x逐字刪除 d刪除整行 a...