04 2009 檔案
摘要: 計(jì)算代數(shù)和 sum = 1 - 1/2 + 1/3 + 1/4 - 1/5 + 1/6 + 1/7 + 1/8 - 1/9 + …
閱讀全文
摘要: ** BTree.h二叉樹(shù)抽象類型
** 由給定的完全二叉樹(shù)形式存儲(chǔ)的數(shù)組(如"12345 6"),構(gòu)造二叉樹(shù)
** 提供:復(fù)制構(gòu)造函數(shù)和賦值操作符重載
** 遞歸和非遞歸形式的中、前、后序遍歷方法
** 求一個(gè)節(jié)點(diǎn)的父節(jié)點(diǎn),左右兄弟結(jié)點(diǎn)的函數(shù)
** 求二叉樹(shù)深度和結(jié)點(diǎn)個(gè)數(shù)的函數(shù)
閱讀全文
摘要: * 根據(jù)給定的字符串構(gòu)造一個(gè)排序二叉樹(shù)
* 從排序二叉樹(shù)中尋找最大值,最小值,不存在時(shí)拋出invalid_argument異常
* 從排序二叉樹(shù)中刪除某一元素,不存在時(shí)拋出invalid_argument 異常
* 往排序二叉樹(shù)中添加一個(gè)新元素
閱讀全文
摘要: 用strcpy和strncpy時(shí)的一些疑問(wèn)答疑,含兩個(gè)函數(shù)的源代碼。
閱讀全文
摘要: 較全面分析sizeof:
1. 一些基本類型的vc6 sizeof結(jié)果
2. 結(jié)構(gòu)體的內(nèi)存對(duì)齊
3. 含位域的結(jié)構(gòu)體介紹
4. 含位域的結(jié)構(gòu)體的內(nèi)存對(duì)齊(壓縮存儲(chǔ)和非壓縮存儲(chǔ))
5. 嵌套結(jié)構(gòu)體的sizeof
6. 類對(duì)象的sizeof
7. 通過(guò)代碼如何修改默認(rèn)對(duì)齊模數(shù)
閱讀全文
摘要: 桶式排序是對(duì)一個(gè)有n個(gè)整型元素的數(shù)組a[n],其中對(duì)任意i,0 <= a[i] <= m的特殊排序算法。
可以對(duì) n==m, n != m分別處理。寫代碼時(shí)需要注意的的是a[i]是訪問(wèn)第i-1個(gè)元素,而非第i個(gè)。
n != m時(shí),運(yùn)行時(shí)間為O(m+n),輔助空間為O(m)
n == m時(shí)特殊處理,運(yùn)行時(shí)間為O(N), 輔助空間為O(1)
閱讀全文
摘要: 歸并排序思路:將序列從中間分割成兩部分,分別遞歸歸并排序,后將兩個(gè)子序列合并。
歸并排序雖然是經(jīng)典排序里比較最少的算法,但有大量的復(fù)制操作,還需要O(N)的輔助空間,從而一般不用于主存,也不利于c++編程。
Java中比較操作耗時(shí)多,而復(fù)制則耗時(shí)少,從而歸并排序是Java中主要排序方法。
而在C++ STL中快速排序是基本排序方法。
閱讀全文
摘要: 快速排序:確定一個(gè)樞紐元,一次遍歷后將數(shù)組劃分成兩個(gè)部分,第一部分均比樞紐元小,第二部分都比樞紐元大,然后對(duì)這兩個(gè)數(shù)組進(jìn)行快速排序,是一種遞歸的方法
平均運(yùn)行時(shí)間O(Nlog(N)),最壞運(yùn)行時(shí)間O(N^2)
最壞情形:對(duì)于預(yù)排序的序列。
對(duì)與樞紐元相等的元素處理:
i,j都停止:會(huì)比較相等元素,但是可以劃分成長(zhǎng)度相當(dāng)?shù)膬蓚€(gè)子數(shù)組
i,j都不停止,不會(huì)比較相等元素,但是可能產(chǎn)生長(zhǎng)度不平衡的兩個(gè)子數(shù)組(與樞紐元相等的元素較多時(shí))樞紐元的選取:
1. 選取第一個(gè)元素做樞紐元:對(duì)于(部分)預(yù)排序的序列運(yùn)行時(shí)間O(N^2)
2. 隨機(jī)生成樞紐元:能避免上述問(wèn)題,但是產(chǎn)生樞紐元的代價(jià)高
3. 三數(shù)中值分割法:選取左端,右端,中間位置三個(gè)元素的中值
閱讀全文
摘要: 自己編寫的一個(gè)矩陣類。
從文件中讀取矩陣和將矩陣寫入文件這兩個(gè)函數(shù)費(fèi)了一點(diǎn)心思,感覺(jué)作用也大一些。
收獲:1. 對(duì)類的static成員函數(shù)的作用有所了解。
2. 對(duì)文件的讀寫操作熟練了一些。clear,seekg等
3. 對(duì)異常處理的初級(jí)應(yīng)用。
閱讀全文