摘要:
摘要 排序有內部排序和外部排序,內部排序是數據記錄在內存中進行排序,而外部排序是因排序的數據很大,一次不能容納全部的排序記錄,在排序過程中需要訪問外存。 冒泡排序 1 func BubbleSort(vector []int) { 2 fmt.Println("BubbleSort") 3 fmt.
閱讀全文
摘要:
思路:初步查看很難一眼分析出表達式是什么含義,我們不妨舉例分析一下,假設 n = 5,二進制表示為101,那么 n-1 = 4,二進制表示為100, 5 & 4 = 101 & 100 = 100 = 4 != 0,下面我們來看更多的例子 我們會發現要使表達式等于0,n-1必須使得n的n-1都向高位
閱讀全文
摘要:
思路一: 計算出n!= nValue,然后 nValue % 10 == 0 則nCount自增1,nValue /= 10 直到條件為否,最后nCount就是我們想要的結果,代碼如下: 代碼簡潔易懂,看上去還不賴,但是這里要考慮一個問題就是在求n!整數溢出了怎么辦? 顯然我們使用_int64也同樣
閱讀全文
摘要:
思路: 遞歸思想。我們有n張牌,不妨先假設有一個洗牌函數shuffle(....),能完美的洗出n-1張牌 。拿第n張牌來打亂前面n-1的洗牌順序,從而得到n張牌的最終結果。 代碼如下: 輸出結果: 從結果來看上去很完美,剩下就是要在隨機函數上做文章了,如果有一個完美的隨機數發生器,那么這就是一個完
閱讀全文
摘要:
tcp關閉連接不區分客戶端和服務端,哪一端口可以主動發起關閉連接請求。所以為了描述方便,描述中的“主動方”表示主動發起關閉連接一方,“被動方”表示被動關閉連接一方。 1. tcp關閉連接狀態轉換 上圖是tcp連接主動關閉端的狀態轉換圖: (1)應用層調用close函數發起關閉連接請求 (2)發送FI
閱讀全文
摘要:
1,原子操作 通常cpu的最小執行單元是一條指令,是不會被打斷的。我們把單條指令的操作成為是原子的,但是像自增或自減這樣的操作由幾條指令組成,是非原子操作。window提供了一些專門的原子操作的API: 2,同步與鎖 a,二元信號量(線程間共享) b,互斥量(mutex) c,臨界區(Critica
閱讀全文
摘要:
函數: (1)int shmget(key_t key, int size, int shmflg),開辟或使用一塊共享內存。 (2)void *shmat(int shmid, const void *shmaddr, int shmflg), 將參數shmid所指向的共享內存與當前進程連接。當使
閱讀全文
摘要:
前言: 消息隊列就是一個消息的鏈表。可以把消息看作一個記錄,具有特定的格式以及特定的優先級。對消息隊列有寫權限的進程可以向其中按照一定的規則添加新消息;對消息隊列有讀權限的進程則可以從消息隊列中讀走消息 函數: 1.創建新消息隊列或取得已存在消息隊列 原型: 參數: key:可以認為是一個端口號,也
閱讀全文