1. 程式人生 > >今日刷題總結3

今日刷題總結3

出口 使用 取數據 參考 點號 並發執行 大小 並排 物理

穩定排序

(1)冒泡排序:冒泡排序就是把小的元素往前調或者把大的元素往後調。比較是相鄰的兩個元素比較,交換也發生在這兩個元素之間。如果兩個元素相等,不用進行交換;所以冒泡排序是一種穩定排序算法。

(2)歸並排序 :歸並排序是把序列遞歸地分成短序列,遞歸出口是短序列只有1個元素或者2個序列(1次比較和交換),然後把各個有序的短序列合並成一個有序的長序列,不斷合並直到原序列全部排好序。在1個或2個元素時,1個元素不會交換,2個元素如果大小相等也不進行交換。在短的有序序列合並的過程中可以保證如果兩個當前元素相等時,把處在前面的序列的元素保存在結果序列的前面,這樣就保證了穩定性。所以,歸並排序也是穩定的排序算法。

非穩定排序

(1)快速排序:快速排序有兩個方向,左邊的i下標一直往右走直到a[i] > a[pivot],其中pivot是中樞元素的數組下標。而右邊的j下標一直往左走直到a[j] <= a[pivot]。如果i和j都走不動了且i < j,交換a[i]和a[j],重復上面的過程,直到i >= j。 交換a[j]和a[pivot],完成一趟快速排序。在a[i]和a[j]交換的時候,很有可能把元素的穩定性打亂。

(2)堆排序:堆的結構是節點i的孩子為2*i和2*i+1節點,大頂堆要求父節點大於等於其2個子節點,小頂堆要求父節點小於等於其2個子節點。在一個長為n 的序列,堆排序的過程是從第n/2開始和其子節點共3個值選擇最大(大頂堆)或者最小(小頂堆),這3個元素之間的選擇當然不會破壞穩定性。但當為n /2-1, n/2-2, ...1這些個父節點選擇元素時,就會破壞穩定性。有可能第n/2個父節點交換把後面一個元素交換過去了,而第n/2-1個父節點把後面一個相同的元素沒 有交換,那麽這2個相同的元素之間的穩定性就被破壞了。所以,堆排序不是穩定的排序算法。

linux文件類型、文件存儲結構以及軟硬鏈接

linux的文件類型有:

(1)普通文件:分為純文本和二進制。

(2)目錄文件:即存儲文件的目錄。

(3)鏈接文件:指向同一文件或目錄的文件。

(4)特殊文件:與系統外設相關的,通常在/dev下面。分為塊設備和字符設備。

典型的linux文件系統如ext2中的一個文件由目錄項、inode和數據塊組成,其中:

(1)目錄項:包含文件名和inode節點號。

(2)inode:又稱文件索引節點,保存著文件的基本信息以及指向文件數據塊的指針。

(3)數據塊:存放文件具體內容。

ext2硬盤分區時會劃分出目錄塊、inode Table區塊和data block數據區域。當查看某個文件時,先在目錄項中查找對應文件名的inode節點號,然後從inode table中找到inode並查出文件屬性及數據存放點,再從數據塊中讀取數據。

軟鏈接又叫符號鏈接,這個文件包含了另一個文件的路徑名。可以是任意文件或目錄,可以鏈接不同文件系統的文件。

硬鏈接是把文件名和文件系統使用的inode節點號鏈接起來。因此可以用多個文件名與同一個文件進行鏈接,這些文件名可以在同一目錄或不同目錄。硬鏈接只能引用同一文件系統中的文件。

參考http://www.cnblogs.com/yyyyy5101/articles/1901842.html

事物隔離級別

未提交讀:一個事務在執行過程中可以看到其他事務沒有提交的新插入的記錄,而且能看到其他事務沒有提交的對已有記錄的更新。

提交讀:一個事務在執行過程中可以看到其他事務已經提交的新插入的記錄,而且能看到其他事務已經提交的對已有記錄的更新。

可重復讀:一個事務在執行過程中可以看到其他事務已經提交的新插入的記錄,但是不能看到其他事務提交的對已有記錄的更新。

串行化:事務執行的時候不允許別的事務並發執行。事務串行化執行,事務只能一個接著一個地執行,而不能並發執行。

參考http://xm-king.iteye.com/blog/770721

集線器

集線器(hub)的主要功能是對接收到的信號進行再生整形放大,以擴大網絡的傳輸距離,同時把所有節點集中在以它為中心的節點上。它工作於OSI七層模型第一層物理層。hub采用CSMA/CD介質訪問控制機制。集線器每個接口簡單的收發比特,收到1就轉發1,收到0就轉發0,不進行碰撞檢測。hub向某節點發送數據時,不是直接把數據發送到目的節點,而是把數據包發送到與集線器相連的所有節點。當以HUB為中心設備時,網絡中某條線路產生了故障,並不影響其它線路的工作。

今日刷題總結3