第一章:
1.分治法和動態規劃(dp)的區別:
1)分治法(自頂向下):
主要用遞迴操作,並且各個部分之間沒有聯絡。需要遞迴若干次並且需要重複計算已經計算好的資料。因此效率低
function devide(x)
else;
int a[size][size] = ;
int *p = &matrix[0][0];
for (int i = 0; i < size*size; i++)
cout << "原始矩陣----------------------------\n";
//原始矩陣是從0~63的8*8的矩陣
for (int i = 0; i < size; i++)
cout << endl;
} int i = 0, j = 0;
for (int x = 0; x < size; x++)
//case2:如果在第0列或者第size-1列,並且是奇數行的時候,向下移動
if ((j == 0 || j == size - 1) && i % 2 == 1)
//case3:如果(i+j)%2是偶數,那麼就向右上移動
if ((i + j) % 2 == 0)
//case4:如果(i+j)%2是奇數,那麼就向左下移動
else if ((i + j) % 2 == 1)
} } cout << "經過z字形轉變之後\n";
for (int i = 0; i < size; i++)
cout << endl; }
return 0;
}2.3大數乘法問題:
大數問題的集合:
輸入資料:從右往左輸入資料:
若想輸入12345,那麼a[0]=5,a[1]=4,a[2]=3,a[3]=2,a[4]=1
//#include "stdafx.h"
/*大數乘法:輸入是從右向左輸入的,eg:
若想輸入12345,那麼a[0]=5,a[1]=4,a[2]=3,a[3]=2,a[4]=1
*/#include#includeusing namespace std;
#define size 3
int* multi(int size1, int *num1, int size2, int *num2) }
//對於計算結果進行修改,將大於10的進行取模進製
for (int i = 0; i < size; i++)
} return result;
}int _tmain(int argc, _tchar* argv)
; int num2[size] = ;
//cout << length(num1) << endl;
//cout << length(num2) << endl;
int *result = multi(3, num1, 3, num2);
//輸出22*21的結果,從右往左進行計算,num1[0]是個位
for (int i = 3 * 2 - 1; i >= 0; i--)
delete result;
return 0;
}
讀書筆記 演算法之美
也就是最優停止問題 源於 秘書問題 答案很簡單,就是37 其實是1 e,35 40 最優停止問題有男性選擇約會物件 女性挑選求婚者 租房等。在所有的最優停止問題中,最大的難點不在於選擇哪一種可選方案,而是確定自己需要考慮多少種方案。遵循這個法則,一般取得最理想結果的可能性就非常接近於最高值。例如,在...
UNIX網路程式設計第一二章讀書筆記
uinternet 使用tcp ip協議組成的網路 internet 使用各種協議組成的網路 internet是一種internet,反之則說法錯誤。bzero起源於berkeley memset起源於ansi read返回0表示對端關閉了連線,不論是阻塞還是非阻塞都是這樣 read返回負值表示出現...
數學之美讀書筆記第一章
通訊的原理和資訊傳播的模型 原理 資訊被編碼,再被解碼的過程。資訊傳播的模型 傳播人 資訊 編碼資訊 通道 聲音介質,雙絞線介質等 解碼資訊 接受者。資訊源的編碼和最短編碼 常用的資訊被編碼為更加簡單或者書寫更加少來實現最短編碼。不常用的資訊通常筆畫較多,或者更加複雜。解碼的規則和語法 編碼後的語言...