C語言的轉義字符
摘要: 今天寫C代碼的時候用到了字符串結束標記,猛然感覺有些陌生,索性復習一下C語言的轉義字符。
轉義字符——當然也是字符,引用的時候要加單引號。C語言中之說以會出現轉義字符,無非處于以下幾個原因:
1.有些字符是不可見的,無法通過鍵盤輸入(比如換行符、回車符、響鈴等)。
2.有些字符已經有特殊的用途,無法直接引用(比如:'\',單引號、雙引號等)。
3.使用轉義字符能夠使意圖更清楚(比如字符串結束標志,我們更傾向于寫成'\0',而不是直接賦0值)。
下表列出了C語言中所有的轉義字符:
閱讀全文
posted @
2012-07-31 23:09 小鼠標 閱讀(1719) |
評論 (0) 編輯
優先隊列--堆實現
摘要: 優先隊列,其實我一直不愿承認“優先隊列”是一種“隊列”,現實世界的隊列(比如排隊)告訴我們,隊列最明顯的性質就是先進先出。而優先隊列,似乎跟這個規則沒什么關系……
閱讀全文
posted @
2012-07-20 10:36 小鼠標 閱讀(3303) |
評論 (0) 編輯
單調隊列
摘要: 單調隊列,顧名思義就是具有單調性的隊列O(∩_∩)O~,一般的隊列只能從隊尾入隊、隊首出隊;為了保持單調隊列的單調性,單調隊列除具有這兩種性質外,還可以從隊尾出隊……
閱讀全文
posted @
2012-07-19 12:21 小鼠標 閱讀(5491) |
評論 (0) 編輯
快速排序、線性時間選擇
摘要: 快速排序是運用了分治思想的排序方式,具有O(NlogN)的平均時間復雜度,極端情況下時間復雜度為O(N^2),跟冒泡排序一樣,但是快排的實際效率遠比最壞情況好很多。它的關鍵部分是一輪選擇(由Partition()函數完成)……所謂線性時間就是在平均O(N)的時間內找出無序序列中第k大的元素。它是以Partition()函數的劃分為依據的……
閱讀全文
posted @
2012-07-17 16:46 小鼠標 閱讀(3688) |
評論 (1) 編輯
堆排序
摘要: 堆排序是一種比較常用的排序方式,具有O(NlogN)的時間復雜度,它只需要一個記錄大小的空間,算法的核心是“篩選”。
堆的存儲方式是一維數組,因為它是一棵完全二叉樹,孩子與雙親下標有簡單直接的計算方式……
閱讀全文
posted @
2012-07-16 11:18 小鼠標 閱讀(1168) |
評論 (0) 編輯