原创 第 7 章 快速排序

對於包含n個數的輸入數組來說,快速排序是一種最壞情況時間複雜度爲θ(n2) 的排序算法。雖然最快情況時間複雜度很差,但是快速排序通常是實際排序應用中最好的選擇,因爲它的平均性能非常好:它的期望時間複雜度爲θ(nlgn) ,而且θ(

原创 第 3 章 函數的增長

  當輸入規模足夠大時,使得只有運行時間的增長量級有關時,我們要研究算法的漸近效率。也就是說,我們關心當輸入規模無限增加時,在極限中,算法的運行時間如何隨着輸入規模的變大而增加。通常,漸近地更有效的某個算法對很小的輸入外的所有情況

原创 第 8 章 線性時間排序

  到目前爲止,我們已經介紹了幾種能在O(nlgn)時間內排序的n個數的算法。歸併排序和堆排序達到了最壞情況下的上界;快速排序在平均情況下達到上界。這些算法都有一個性質:在排序的最終結果中,個元素的次序依賴於它們之間的比較。稱這些

原创 第 4 章 分治策略

在分治策略中,我們遞歸地求解一個問題,在每層遞歸中應用如下三個步驟:   分解:將問題劃分爲一些子問題,子問題的形式與原問題一樣,只是規模更小。   解決遞歸地求解出子問題。。如果子問題規模足夠小,則停止遞歸,直接求解。  

原创 3 無重複字符的最長

給定一個字符串,請你找出其中不含有重複字符的 最長子串 的長度。 示例 1: 輸入: “abcabcbb” 輸出: 3 解釋: 因爲無重複字符的最長子串是 “abc”,所以其長度爲 3。 示例 2: 輸入: “bbbbb” 輸出:

原创 第 9 章 中位數和順序統計量

  在一個由n個元素組成的集合中,第i個順序統計量是該集合中第i小的元素。例如,在一個元素集合中,最小值是第 1 個順序統計量,最大值是第n個順序統計量(i=n)。用非形式化的描述來說,一個中位數是它所屬集合的“中點元素”。當n爲

原创 第 11 章 散列表

  散列表是實現字典操作的一種有效數據結構。儘管在最壞情況下散列表查找一個元素的與鏈表中的時間相同,達到θ(n)。然而在實際應用中,在一些合理的假設下,在散列表中查找一個元素的平均時間是O(1)。   散列表是普通數組概念的推廣

原创 第 15 章 MySQL分佈式應用

對於一個大型數據庫應用來講,設計一個分佈式、高可用的架構非常重要。MySQL從5.0.3版本就開始支持分佈式事務,通過數據切分、讀寫分離、數據緩衝、集羣等方式可以更好地構建分佈式應用。 15.1 分佈式應用的概念和優勢 分佈式數據

原创 第 2 章 算法基礎

本章將要介紹一個貫穿本書的框架,後續的算法設計與分析都是在這個框架中進行的。 2.1 插入排序 輸入:n個數的一個序列< a1, a2, … , an >。 輸出:輸入序列的一個排列< a1’, a2’, … , an’>,滿足

原创 第 16 章 MySQL緩存的配置和使用

在MySQL服務器高負載的情況下,必須採取一種措施給服務器減輕壓力,減少服務器的IO操作。一般採用的方法是優化SQL操作語句,優化服務器的配置參數,從而提高服務器的性能。MySQL使用了幾種內存緩存數據的策略來提高性能。對於使用和

原创 第 14 章 MySQL的日誌管理

日誌是MySQL數據庫的重要組成部分,日誌文件中記錄着MySQL數據庫運行期間發生的變化,如:MySQL數據庫的客戶端連接情況、SQL語句的執行情況和錯誤信息等。當數據庫遭到意外的損壞時,可以通過日誌查看文件出錯的原因,並且可以通

原创 window7 環境下VS CODE編譯調試C++程序配置

http://blog.csdn.net/c_duoduo/article/details/51615381 http://www.jianshu.com/p/d0350f51e87a 點贊 收藏 分享

原创 第一部分 基礎知識

之前一直想看下神書算法導論,由於種種原因一直沒有仔細研讀,從今天開始,接下來一個一個多月的時間裏,爭取一天一章內容,認真研讀這本書。 第一部分,這一部分將引導讀者開始思考算法的設計和分析問題,簡單介紹算法的表達方法、將在本書中用到

原创 第 17 章 MySQL錯誤代碼和消息的使用

當用戶以某種主機語言(如java)調用MySQL時,有可能出現操作的錯誤,用戶必須通過MySQL的錯誤提示來修改錯誤。本章列出了服務器錯誤代碼和錯誤消息,以及客戶端程序錯誤代碼和錯誤消息供用戶參閱。 17.1 MySQL服務器端錯

原创 第二部分 排序和順序統計量 第 6 章 堆排序

排序算法   插入排序最壞情況下可以再θ(n2) 時間內將 n 個數排好序。但是,由於其內層循環緊湊,對於小規模輸入,是一張非常快的原址排序(如果輸入數組中僅有常數個元素需要在排序過程中存儲在數組之外,則稱排序算法是原址的)。歸