2021-2022-1 20211308《資訊保安專業導論》第七週學習總結
阿新 • • 發佈:2021-11-06
2021-2022-1 20211308《資訊保安專業導論》第七週學習總結
作業資訊
|作業屬於哪個課程|
資訊保安專業導論
|作業要求連結|
第七週作業
|作業正文|
實現進位制轉換虛擬碼
斐波那契數列遞迴實現
求最大公約數虛擬碼
本文連結
|作業目標|
- 陣列與連結串列
- 基於陣列和基於連結串列實現資料結構
- 無序表和有序表
- 樹
- 圖
- 子程式與引數
教材內容總結
- 陣列
陣列是同構專案的有名集合,可以通過索引來訪問單個專案在集合中的位置,採用0開始到9結束的方式。
如果陣列被定義為numbers,可以通過表示式numbers[position]來訪問
下面是像陣列中加入值的演算法
interger numbers[10] Write "Enter 10 interger numbers, one per line" Set position to 0 While(position <10) Read in numbers[position] Set position to position + 1
- 可以對陣列進行搜尋、排序、處理
- 搜尋:尋找陣列中的項,可以是特定的數值
- 排序:按照順序將元素放進陣列
- 處理:包含對陣列中的項所做的所有其他計算
- 資料結構
一種抽象資料型別中的複合資料域的實現 - 容器
存放和操作其他物件的物件 - 棧
“後進先出”:可以在第一個位置插入元素,也可以刪除第一個元素
可以類比為餐具架,插入的操作叫做Push,刪除操作叫做Pop,而我們需要確定棧是否為空,否則會出現錯誤 - 佇列
“先進先出”插入位置在隊末進行,刪除操作在佇列頭部進行。 - 列表
三個屬性- 專案是同構的
- 專案是線性的
- 列表是變長的
列表也可以被形象化為鏈式結構
- 鏈式結構
一種將資料項和找到下一項位置的資訊儲存到同一容器的實現方法 - 無序列表
不注重順序,專案只是隨意地被放入其中。 - 有序列表
專案之間具有語義的關係,除了第一個專案之外的所有專案都存在某種排序關係,除了最後一個專案,所有的專案都有相同的關係。 - 樹
之前所描述的列表、棧、佇列都是線性關係,只模擬了一種資料關係,而更加具體的更加複雜的關係可以用樹來描述
就類似樹狀圖,我們在計算領域,所說的通常是二叉樹
樹的頭部是一個起始點,叫做根
沒有”子女“的樹節點稱為葉節點 - 在二叉檢索樹中搜索
首先比較根節點,如果大於一定在於右子樹中,繼續比較直到找到匹配的值 - 圖
剛才提到樹是表示存在層次關係的一種有效方式,也就是說一個節點至多隻有一個指向他的節點,如果去掉這種約束,就得到了另外一種資料結構--圖,圖中的節點叫做頂點、圖中的線段叫做邊。- 有向圖
- 無向圖
- 圖的三種經典搜尋演算法
- 深度優先搜尋
首先用深度優先搜尋來搜尋第一個與起點相鄰的頂點,如果他是終點則結束、否則檢查所有與第一個頂點相鄰的頂點 - 廣度優先搜尋
在廣度優先搜尋中,我們想要回溯到儘可能遠,因此棧不再是一個適合尋找較早路徑的資料結構,它是按照元素出現的相反順序來儲存元素,即最晚的路徑在頂部
,因此不再使用棧,而是使用佇列,就可以解決這個問題 - 單源最短路搜尋
是一個數學問題,書上講的不是很詳細
https://blog.csdn.net/fuckguidao/article/details/79053877
附上一篇部落格連結,看完這篇部落格,我還是深受啟發。
- 深度優先搜尋
- 子程式
如何在演算法和子演算法之間傳遞資訊,在討論語言的構造時,我們常用子程式來介紹。
比如
Set x to m*sin(t)
Set y to abs(z)
sin()和abs()都是有返回的子程式
- 引數
- 形參:列在子程式名後的括號中的識別符號
- 實參:子程式在呼叫中列在括號中的識別符號
- 值參:由呼叫單元傳入實參的副本
- 引用引數:由呼叫單元傳入實參的地址的實參
上週錯題總結
無
學習進度條
程式碼行數(新增/累積) | 部落格量(新增/累積) | 學習時間(新增/累積) | 重要成長 | |
---|---|---|---|---|
目標 | 5000行 | 30篇 | 400小時 | |
第一週 | 200/200 | 2/2 | 20/20 | |
第二週 | 300/500 | 2/4 | 20/40 | |
第三週 | 500/1000 | 3/7 | 20/60 | |
第四周 | 300/1300 | 5/12 | 25/85 | |
第五週 | 150/1450 | 3/15 | 20/105 | |
第六週 | 150/1600 | 3/18 | 15/120 | |
第七週 | 400/2000 | 4/22 | 20/140 |
感悟
這周集中學習了一下python,對python的語法進行了熟悉,準備在接下來的學習中去運用程式碼,繼續加油。