《演算法之美》第一二章讀書筆記

2021-08-14 23:13:33 字數 1590 閱讀 3585

第一章:

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返回負值表示出現...

數學之美讀書筆記第一章

通訊的原理和資訊傳播的模型 原理 資訊被編碼,再被解碼的過程。資訊傳播的模型 傳播人 資訊 編碼資訊 通道 聲音介質,雙絞線介質等 解碼資訊 接受者。資訊源的編碼和最短編碼 常用的資訊被編碼為更加簡單或者書寫更加少來實現最短編碼。不常用的資訊通常筆畫較多,或者更加複雜。解碼的規則和語法 編碼後的語言...