原创 求a^n的O(nlgn)算法
求a^n的O(nlgn)算法: 分治思想: a^n = a^(n/2) *a^(n/2) n爲偶數 a^( (n-1)/2 ) * a^((n-1)/2
原创 小規模的兩種題型
小規模的兩種題型: 改進原理其實就是把所有的非項化掉
原创 中規模實現組合邏輯函數(兩種)
中規模實現組合邏輯函數(兩種): (2)降維圖法
原创 用最小的比較次數來得到,最大值和最小值
如何用最小的比較次數來得到,最大值和最小值: 對於偶數: 先取兩個數比較一下 較小的爲min,較大的爲max max = a[] min = a[] 然後: 取兩個數進行比較 較大的數和max比較 較小的數和min比較 次數
原创 漸進記號總結
漸進記號總結: 漸近記號包括: (1)Θ(theta):緊確界。 相當於"=" (2)O (大歐):上界。 相當於"<=" (3)o(小歐):非緊的上界。 相當於"<" (4)Ω(大omega):下界
原创 最大連續子數組
最大連續子數組: 暴力求解最大連續子數組 代碼: #include <iostream> #include <cstdio> using namespace std; int main() { int A[8] =
原创 堆排序
堆排序: 什麼是堆:是一種數據結構,邏輯上市一個完全二叉樹,存儲上個是個數組 性質:兩種堆,最小堆和最大堆。任意結點的key值都比他的孩子結點所有孩子結點的key值大 完全二叉樹:除了葉子結點的那一層,其他層都是滿的,而且葉子結點的排布是
原创 插入排序
插入排序: 每個數都會與前面的數進行比較,插入到自己應該在的位置,然後排在它後面的數,依次往後移動一位。 代碼: #include<iostream> #defineMAXN 10000 usingnamespace std;
原创 矩陣乘法的Strassen
矩陣相乘 暴力算法: 代碼: #include <stdio.h> int main() { int A[2][2]={1,2,3,10}; int B[2][2]={5,6,6,6}; int C[2
原创 Python3中sorted的不同
python3.x和python2.x的sorted()函數的區別: sorted(iterable, cm
原创 選擇算法(RANDOMIZED_SELECT)
#include using namespace std; //把它分成兩個部分,不一定是等分的 int RAND_PARTITION(int *A , int p , int r) { int x = A[r]; i
原创 python3.x與python2.x的一些不同
1)input() python3.x中把 raw_input 和 input 都歸結爲 input() 所以全部用 input() 就好了 並且,input() , 輸入後得到的是 str 類型 , 必要時要進行類型的強制轉換 2)g
原创 簡單的單路緩存 模擬器實現
簡單的單路緩存 模擬器實現 Cache模擬器 實現一個32大小的單路組相聯,因爲是單路,不涉及替換算法的實現; 按行讀取給定的trace文件,模擬緩存功能,直到讀取完畢,最後輸出如下的數據: _u32cache_r
原创 解決中文亂碼問題
感覺原教材有點問題: 在這裏當是做一下筆記吧 我是直接把編碼方式設置爲UTF-8 感覺剛做完大作業,對這個UTF-8還是很親切的!! int main(int argc, char *argv[]) { QApplic
原创 FileWriter和BufferedWriter區別和用法(附加java書上7.4的題目!!)
FileWriter和BufferedWriter區別和用法 兩個都可以作爲寫入的流,那麼兩個的區別在哪裏呢? 1) 首先,如果要使用BufferedWriter,一定會要用到FileWriter 畢竟它是以FileWrite