本週學習瞭如何描述計算機問題求解的過程,並經過此學習到解決生活中其餘問題的一些技巧與方法:尋找熟悉的狀況(直接調用)、分治法(devide and conquer)、自頂向下的方法(將問題一層層具體化)等;此外,瞭解了算法的定義,明確了明確指令的定義(計算機可以直接執行的語句),同時還學習了集中常見算法:埃拉托色尼篩法(素數斷定)、展轉相除法、秦九韶算法(多項式快速計算);而且,還學習了選擇與循環語句(控制結構),明確數組(同構,位置訪問)和記錄(異構,名字訪問)的區別;瞭解到搜索、排序算法中幾種常見算法:順序檢索、二分檢索、選擇排序、冒泡排序、插入排序、快排;並經過快排、階乘的例子較深刻地理解了遞歸;瞭解到信息隱蔽以及抽象在生活中的重要做用。git
除《概論》教材外,本週複習了《自學是門手藝》第三章到第四章,第三遍看的感受果真不同,感受更有重點,也注意到了更多細節(如元組、列表、字典等的具體用法),並進一步瞭解到官方文檔的重要性。github
本週C語言方面學習字符串以及數組。算法
教材上僞代碼的使用極其繁瑣、複雜,使用時甚至感到比寫源代碼困難。經過上網蒐集資料,知道了僞代碼其實不須要嚴格格式要求,只要本身可以清晰簡潔地表述解決問題過成就行。數組
在完成蛇形填數(二維數組初探)這一程序時發現邊上一圈輸出的值全爲零。進過調試發現我邊界狀況處理忽視了:每次移動都需判斷是否越界(即x+1<n,y+1<n)。ide
https://github.com/20191218TangQiheng/TangQiheng/blob/master/10000%E4%BB%A5%E5%86%85%E7%9A%84%E7%B4%A0%E6%95%B0學習
https://github.com/20191218TangQiheng/TangQiheng/blob/master/%E5%80%92%E5%BA%8F%E8%BE%93%E5%87%BA%E4%BB%BB%E6%84%8F%E4%BD%8D%E6%95%B0%E6%95%B0%E5%AD%97調試
https://github.com/20191218TangQiheng/TangQiheng/blob/master/%E5%8F%8D%E5%90%91%E7%9B%B4%E8%A7%92%E4%B8%89%E8%A7%92%E5%BD%A2排序
https://github.com/20191218TangQiheng/TangQiheng/blob/master/%E5%B9%B3%E8%A1%8C%E5%9B%9B%E8%BE%B9%E5%BD%A2遞歸
https://github.com/20191218TangQiheng/TangQiheng/blob/master/%E8%BE%93%E5%87%BA%E6%AD%A3%E8%8F%B1%E5%BD%A2文檔
https://github.com/20191218TangQiheng/TangQiheng/blob/master/%E9%87%91%E5%AD%97%E5%A1%94
30/139hour