原创 遞歸、迭代、動態規劃的區別

遞歸的基本概念:程序調用自身的編程技巧,就是函數自己調用自己; 一個函數在定義中直接或者間接調用自身的一種方法,它通常是將一個大型的複雜的問題分解爲與之相似的小的問題,可以極大的減少代碼量; 遞歸有兩個特點: 1)函數自身調用自身; 2)

原创 二叉樹的遍歷 前序 中序 後序

二叉樹經常會遇到遍歷的問題,遍歷分爲前序,中序,後序,這三種遍歷的區別在於根節點的順序: 前序:根 左 右 中序:左 根 右 後序:左 右 根 首先我們看下怎麼看下手工列出遍歷的順序: 前序:A B C D E F G H K 中序:B

原创 grep 使用技巧

grep(global search regular expression(RE) and print out the line,全面搜索正則表達式並把行打印出來)是一種強大的文本搜索工具,它能使用正則表達式搜索文本,並把匹配的行打印出來

原创 git版本控制工具如何回退上次commit中的某個文件

現在git版本控制工具是當下最流行的版本控制工具,git分爲工作區,暫存區以及版本區,如果修改的文件在工作區或者在暫存區,可以使用命令git checkout -- <file>和git reset HEAD <file>進行回退。 如果

原创 重載和重寫

最近一直在研究設計模式,主要是針對面向對象的程序來講的。因此必不可少的會接觸面嚮對象語言的關鍵字,比如重載和重寫,那麼什麼是重載和重寫呢? 重載(overload)是一個類中可以定義相同名稱的方法,但是方法的入參是不同的,包括入參的順序不

原创 IP地址的轉換

今天遇到一個題目:將十進制的IP地址轉化成二進制,然後將二進制串起來成爲32的數,再按照十進制將這個數讀出來。這個問題有種解決方案: 1. 可以用乘法操作; 2. 可以用移位操作; 3. 可以使用聯合體定義解決; 下面我就移位操作和利用聯

原创 單鏈表

線性表是數據結構中比較重要的一種結構。線性表可以用連續存儲空間來表示,也可以用鏈表的形式表示。鏈式存儲結構不要求在邏輯上相鄰的元素在物理位置上也相鄰,因此他在插入元素和刪除元素上具有着得天獨厚的優勢,但是卻失去了順序存儲中可隨機存儲的優點

原创 字符串流的使用c++

堅持寫博客——善於總結和記錄學習的每一天 今天簡單的複習了下c++的標準IO庫,c++的IO操作和c的IO操作原理是不一樣的,c++是使用的強大的類庫實現了IO的操作,而c只是使用了簡單的庫函數實現了IO操作。這就帶來了一些本質的區別,首

原创 內存對齊總結

今天參加了入職前的小小的培訓,培訓中老師講到了關於內存對齊的只是,以前接觸過,但是沒有深究,今天老師講了,回來便查了查資料,下面便是我對內存對齊的理解。 內存對齊對於大部分的軟件工程師來說都可以說是透明的,內存對齊應該是編譯器去管理的,C

原创 win7專業版激活方案

今天給我的臺式機重裝了win7系統,但是發現一個蛋疼的事情,就是不能正常激活win7系統了。 我主要使用了一下幾種激活電腦的方式: 1. 使用以前的激活程序進行系統的激活; 2. 使用學校購買的正版系統進行激活,這也遇到了問題,出現密鑰不

原创 windows下如何配置實現命令行編譯c++程序

大家知道在linux下編譯c++代碼的那種命令式的編譯方式,想不想在windows下實現這樣的功能?今天我就使用了我的windows臺式電腦和筆記本電腦實現了這樣的命令式的c++代碼的編譯。 首先你需要的工具就是: 1. 一臺window

原创 編寫自動測試c語言程序的shell腳本

目前經常用vim編寫一些c語言程序,寫好了程序一般都得進行一些測試,當然我們可以進行一些常規的手動測試。心裏一想,如果能夠用shell腳本編寫一個能自動測試c語言程序就好了。 爲了試一試這樣的想法,找了一個c語言程序題目: [一球

原创 使用MacBook air 11.6第一記

糾結了很長時間買到了我心儀的蘋果筆記本電腦了,從之前在macbook pro和air之間的糾結發展到了後來的air11和air13之間的糾結,終於到了昨天我下了最後的決心,買了一臺2015款的macbook air 11。當時在買11的時

原创 希爾排序算法——縮小增量法排序

希爾排序——1959年shell提出而得名,也稱爲縮小增量排序算法,它是直接插入排序的改進,效率比較高,適合於中小規模的排序。 具體的算法實現步驟爲:首先得知道直接插入排序的算法,然後就是選擇增量給原數列進行分組,對每個分得的小組進行直接

原创 c++中函數模板的使用

在程序設計中,經常要使用到函數體相同的函數,如果我們要根據所使用的參數表不同來決定調用具體哪個函數時,我們經常使用的方式是進行函數重載,但是當我們的函數很多的時候會發現實現起來很不方便。所以c++提供了函數模板的概念,這和類模板實現起來的