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

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

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

作業資訊

這個作業屬於哪個課程 <班級的連結>[2020-2021-1資訊保安專業導論](https://edu.cnblogs.com/campus/besti/2020-2021-1fois)
這個作業要求在哪裡 <作業要求的連結>2020-2021-1資訊保安專業導論第7周作業
這個作業的目標 <作業目標>作業目標
這個作業屬於哪個課程 <班級的連結>2020-2021-1資訊保安專業導論

教材學習內容總結

電腦科學概論

- 陣列與連結串列

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

隨機訪問性強,查詢速度快,時間複雜度是0(1)

  1. 陣列的缺點

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

3.2 空間利用率不高

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

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

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

- 無序表與有序表

  1. 在大資料時代,如何在海量資料中快速檢索到自己想要的資料?首先需要設計高效的資料結構來表示這些資料,要儲存的資料一般分為兩個部分,鍵和值,如何根據鍵值去安排這些資料尤為重要,首先我們想到線性儲存,即利用表的形式線性儲存,線性查詢,即符號表這種資料結構.
  2. 符號表線性儲存資料,但是根據在插入操作過程中是否保證資料有序分為無序表和有序表:
  3. 無序列表用
      表示,有序列表就可以用
        來表示了。
      1. 自定義列表使用標籤
        ,每一項都用
        表示,其中,自定義列表還多了一項功能,就是可以設定標題,用
        來表示。

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


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

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

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

      看漫畫學python

      第八章函式

      什麼是函式:一系類python語句的組合 可以在程式中執行一次或者多次
      一般是要完成具體的獨立功能
      為什麼要使用函式:
      程式碼的複用最大化以及最小化剩餘程式碼 ,整體程式碼結構更加清晰

      1.函式的定義

      def 函式名(括號裡邊是引數列表,引數可以是0個或者N個,也可以是給引數賦值預設值)
          函式體【一系列的python 語句,表示獨立的功能】
          return 返回值(可以省略)
      

      2.函式的呼叫
      本質上就是去執行函式定義裡面的程式碼塊,在呼叫函式之前,必須要先定義 呼叫的時候一定要在函式名後面加上()

      3.引數的預設值

      def sum1(a=12,b=12):
          return 'a的值是{},b的值是{}'.format(a,b)
      print(sum1())
      print(sum1(123,13))
      

      4.可變引數
      可變引數在函式中被組裝成元組或者字典

      • 基於元組的可變引數(*可變引數)
      def sum1(*nmubers):
          total=0.0
          for number in numbers:
          total+=number
          return total
      print(sum(12,31,41))
      
      • 基於字典的可變引數(**可變引數)
      def babab(**zidian):
          print(zidian)
          pass
      babab(name='pepter',age=311) 
      
      • 全域性變數與模組變數
        變數可以在函式中建立,在預設情況下作用域是整個函式,被稱為區域性變數
        可通過···global x ··· 將區域性變數升級為全域性變數

      • 函式型別:
        1.python中任意一個函式都有資料型別,這種資料型別是function,被稱為 函式型別

      def add(a,b):
          return a+b
      def sub(a,b)
          return a-b
      def clac(opr):
          if opr='+':
              return add
          else:
              return sub
      f1=clac('+') #實際上f1被賦值成為了一個add函式
      f2=clac('-')
      print(type(f1()))
      print(f1(10,5))
      print(f2(10,5))
      

      - lamdba函式:沒有名稱的函式
      lamdba 引數列表:lamdba體
      注意:lamdba函式只有一條語句,不需要用return返回
      可用lamdba函式改編上面的函式

      def calc(opr):
          if opr='+':
              return lambda a,b:(a+b)
          else:
              return lambda a,b:(a-b)
      f1=calc('+')
      f2=calc('-')
      print(f1(123,414))
      

      第十一章







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

      問題:我看到教材中的lambda函式不知道怎樣去運用它
      解決方法:將lambda函式體進行賦值

      f2=lambda a,b:(a**b)
      print(f2(3,5))
      

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

      問題:計算水仙花數時不知到四位數的水仙花數如何計算
      解決方法:查詢資料,四位數的水仙花是四葉草數

      上週考試錯題總結

      1.Which of the following is part of a Pep/9 program instruction?

      A. Accumulator
      B. Simulator
      C. Program counter
      D. Specifier
      E. Register
      選D.識別符號
      2.The Pep/9 system includes a simulator that can be used to input and run programs.
      Pep/9系統包括一個模擬器,可用於輸入和執行程式。
      是正確的

      學習進度條

      程式碼行數(新增/累積) 部落格量(新增/累積) 學習時間(新增/累積) 重要成長
      目標 5000行 30篇 400小時
      第一週 200/200 2/2 20/20
      第二週 300/500 2/4 18/38
      第三週 500/1000 3/7 22/60
      第四周 300/1300 2/9 30/90
      第五週 212、1531 2/11 21/121
      第六週
      第七週 123/1654 2/13 21/142