1. 程式人生 > 其它 >2021-2022-1 20211309 《資訊保安專業導論》第7周學習總結

2021-2022-1 20211309 《資訊保安專業導論》第7周學習總結

2021-2022-1 20211309 《資訊保安專業導論》第7周學習總結

作業資訊

|這個作業屬於哪個課程|https://edu.cnblogs.com/campus/besti/2021-2022-1fois
|這個作業要求在哪裡|https://edu.cnblogs.com/campus/besti/2020-2021-1fois/homework/11249
|作業目標
課本第八章的學習

教材學習內容總結

電腦科學概論第八章的學習

陣列與連結串列

所謂陣列,就是相同資料型別的元素按一定順序排列的集合;陣列的儲存區間是連續的,佔用記憶體比較大,故空間複雜的很大。但陣列的二分查詢時間複雜度小,都是O(1);陣列的特點是:查詢簡單,增加和刪除困難

陣列的優點
隨機訪問性強,查詢速度快,時間複雜度是0(1)
陣列的缺點

  • 從頭部刪除、從頭部插入的效率低,時間複雜度是o(n),因為需要相應的向前搬移和向後搬移。

  • 空間利用率不高

  • 記憶體空間要求高,必須要有足夠的連續的記憶體空間。

  • 陣列的空間大小是固定的,不能進行動態擴充套件。

  • 連結串列的特點:所謂連結串列,連結串列是一種物理儲存單元上非連續、非順序的儲存結構,資料元素的邏輯順序是通過連結串列中的指標連結次序實現的。連結串列由一系列結點(連結串列中每一個元素稱為結點)組成,結點可以在執行時動態生成。每個結點包括兩個部分:一個是儲存資料元素的資料域,另一個是儲存下一個結點地址的指標域。 相比於線性表順序結構,操作複雜。

無序表與有序表

  • 在大資料時代,如何在海量資料中快速檢索到自己想要的資料?首先需要設計高效的資料結構來表示這些資料,要儲存的資料一般分為兩個部分,鍵和值,如何根據鍵值去安排這些資料尤為重要,首先我們想到線性儲存,即利用表的形式線性儲存,線性查詢,即符號表這種資料結構.
  • 符號表線性儲存資料,但是根據在插入操作過程中是否保證資料有序分為無序表和有序表:

  • 二叉樹:
    根:樹的頭部二叉樹:具有唯一起始節點的抽象複合結構,每個節點有兩個子女節點,根節點和每個節點之間都有且只有一條路徑
    葉節點:沒有子女的樹節點。

  • 二叉檢索樹
    在二叉檢索樹中搜索:current指向一個節點,info(current)指節點中使用者資料。left(current) 指左指數的根節點。
    特點:對於二叉檢索樹的任意一個結點,設其值為K,則該結點左子樹中任意一個結點的值都小於K;該結點右子樹中任意一個結點的值都大於或等於K

頂點:節點

  1. 邊(弧):兩個節點連線的頂點對
  • 圖演算法廣度優先搜尋:用佇列來訪問,儘可能檢查與起點相鄰的頂點。
  • 深度優先搜尋:用棧來訪問,沒有找到及回溯。且已經訪問過的棧點不會再次訪問。
  • 單源最短路搜尋:權值加在一起最小。搜尋最近的頂點,優先佇列:被檢索的元素是在佇列中擁有最高優先度的元素。

樹是表示存在層次關係的一種有效方式,也就是說一個節點至多隻有一個指向他的節點,如果去掉這種約束,就得到了另外一種資料結構--圖,圖中的節點叫做頂點、圖中的線段叫做邊。

* 深度優先搜尋
首先用深度優先搜尋來搜尋第一個與起點相鄰的頂點,如果他是終點則結束、否則檢查所有與第一個頂點相鄰的頂點
* 廣度優先搜尋
在廣度優先搜尋中,我們想要回溯到儘可能遠,因此棧不再是一個適合尋找較早路徑的資料結構,它是按照元素出現的相反順序來儲存元素,即最晚的路徑在頂部
,因此不再使用棧,而是使用佇列,就可以解決這個問題

子程式與引數

1.引數傳遞 :引數列表:是子程式要使用的識別符號或值得列表。
2.值參與引用引數 值參:由呼叫單元傳入實參的副本的形參 引用引數:由呼叫單元傳入實參的地址的形參

教材學習中的問題和解決過程

問:單源最短路搜尋具體是什麼意思?
答案:通過部落格園和百度的查詢瞭解到這是一個類似數學上的問題
https://www.cnblogs.com/Lorrained/p/15170132.html
https://www.cnblogs.com/Lorrained/p/15170132.html

程式碼除錯中的問題和解決過程

問:斐波那契數列為什麼一分鐘算不出來
採用形如def fib(n):
return 1 and n <= 2 or fib(n - 1) +fib(n - 2)
print('\n 最終結果為 %d'%(fib(n)))
這樣的遞迴是不行的,
但通過更換演算法可以實現,具體原理還需要學習

[程式碼託管]




上週考試錯題總結

感悟

學習是一個舉一反三的過程,不需要強記

學習進度條

程式碼行數(新增/累積) 部落格量(新增/累積) 學習時間(新增/累積) 重要成長
目標 5000行 30篇 400小時
第一週 0/0 2/2 15/10
第二週 0/100 3/4 6/5
第三週 200/200 5/5 8/10
第四周 700/500 6/6 25/20
第五週 1000/1000 8/8 16/20
第六週 1300/1200 9/9 12/15
第七週 1500/1500 10/10 12/12