原创 求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