原创 死鎖

目錄 一、什麼是死鎖 二、死鎖的必要條件 三、死鎖的處理方法 1、死鎖預防 2、死鎖避免 (1)進程啓動拒絕 (2)資源拒絕分配(銀行家算法) 3、死鎖檢測和死鎖恢復 死鎖檢測 死鎖恢復 一、什麼是死鎖 所謂死鎖是指多個併發進程,各自持有

原创 C語言運算符優先級

轉自: http://blog.csdn.net/huangblog/article/details/8271791   C語言運算符優先級   優先級 運算符 名稱或含義 使用形式 結合方向 說明 1 []

原创 劍指Offer——不用加減乘除做加法

題目描述 寫一個函數,求兩個整數之和,要求在函數體內不得使用+、-、*、/四則運算符號。 輸入爲num1和num2 方法 不能用+-*/,那麼只能用位運算來進行計算,可以把二進制像十進制加法一樣,按位相加,滿2進1,然後可以發現: 按位相

原创 硬鏈接和軟鏈接的區別

參考:https://www.ibm.com/developerworks/cn/linux/l-cn-hardandsymb-links/index.html   硬鏈接 我們知道文件都有文件名與數據,這在 Linux 上被分成兩個部分

原创 劍指Offer——和爲S的連續正數序列

題目描述 小明很喜歡數學,有一天他在做數學作業時,要求計算出9~16的和,他馬上就寫出了正確答案是100。但是他並不滿足於此,他在想究竟有多少種連續的正數序列的和爲100(至少包括兩個數)。沒多久,他就得到另一組連續正數和爲100的序列:

原创 排序代碼

目錄 1、插入排序 2、冒泡排序 3、選擇排序 4、希爾排序 5、快排(2路) 6、堆排序 7、歸併排序 1、插入排序 template <typename T> void insertSort(vector<T>& v) {

原创 劍指Offer——滑動窗口的最大值

題目描述 給定一個數組和滑動窗口的大小,找出所有滑動窗口裏數值的最大值。例如,如果輸入數組{2,3,4,2,6,2,5,1}及滑動窗口的大小3,那麼一共存在6個滑動窗口,他們的最大值分別爲{4,4,6,6,6,5}; 針對數組{2,3,4

原创 對面向對象的理解

面向對象是基於萬物皆對象這個哲學觀點,在現實生活中的任何物體都可以歸爲一類事物,而每一個個體都是一類事物的實例。把一個對象抽象成類,具體上就是把一個對象的靜態特徵和動態特徵抽象成屬性和方法,也就是把一類事物的算法和數據結構封裝在一個類之中

原创 劍指Offer——左旋轉字符串

題目描述 彙編語言中有一種移位指令叫做循環左移(ROL),現在有個簡單的任務,就是用字符串模擬這個指令的運算結果。對於一個給定的字符序列S,請你把其循環左移K位後的序列輸出。例如,字符序列S=”abcXYZdef”,要求輸出循環左移3位後

原创 歸併排序

轉載:歸併排序算法 基本思想 歸併排序採用的是分治算法的思想,其中最重要的操作就是歸併操作。 主要思想是,將數組平分爲A,B兩部分,分別將A,B兩部分排好序,然後再合併,對A排序的時候,也是同樣的思路,將A分爲兩份,同樣先分別排序,再合併

原创 劍指Offer——平衡二叉樹

題目描述 輸入一棵二叉樹,判斷該二叉樹是否是平衡二叉樹。 (一般來說,平衡二叉樹既是平衡的樹,又是二分搜索樹。但此題只要求判斷是不是平衡的) 節點的結構一般如下: struct TreeNode { int val; s

原创 TIME_WAIT的意義

上圖爲TCP連接釋放過程,在服務器A收到服務器B發送的FIN+ACK後,會向B發送ACK,進入到TIME_WAIT階段,等待2MSL(MSL:Max Segment Lifetime,最長報文段壽命,報文段在網絡中能夠存活的最長時間)。

原创 進程的狀態及轉換

進程是計算機中已運行程序的實體。 程序本身只是指令的集合,進程纔是程序的真正運行。用戶下達運行程序的命令後,就會產生進程。同一個程序可以產生多個進程(一對多關係),以允許用戶運行統一程序,卻不會互相沖突。進程需要一些資源才能夠完成工作,如

原创 劍指Offer——構建乘積數組

題目描述 給定一個數組A[0,1,...,n-1],請構建一個數組B[0,1,...,n-1],其中B中的元素B[i]=A[0]*A[1]*...*A[i-1]*A[i+1]*...*A[n-1]。不能使用除法。 方法一 如果能使用除法,

原创 劍指Offer——把數組排成最小的數

題目描述 輸入一個正整數數組,把數組裏所有數字拼接起來排成一個數,打印能拼接出的所有數字中最小的一個。例如輸入數組{3,32,321},則打印出這三個數字能排成的最小數字爲321323。 方法 輸入爲 vector<int> number