1. 程式人生 > 實用技巧 >2020-2021-1學期20202421《網路空間安全專業導論》第三週學習總結

2020-2021-1學期20202421《網路空間安全專業導論》第三週學習總結

本週的學習逐漸進入了較為重要的階段 涉及到了日後非常重要的虛擬碼的介紹以及一些簡單演算法的介紹 對於本週內容的鞏固和加深是十分有必要的

第六章 低階程式設計語言與虛擬碼

本章的內容我在高一時就有所瞭解 當時參加資訊競賽時 由於不是隨時都能使用電腦 虛擬碼這一方式就變得十分重要了 在當時 課餘時間研究c++時我的草稿本上常常佈滿了寫下的虛擬碼 這種程式碼是沒有一定標準的 只需要讓自己的程式碼能夠使自己看懂就行了 但是 這並不意味著這部分內容不需要認真學習 因為 你不僅需要看懂自己的虛擬碼 你更需要看懂許多程式設計教材中別人寫的虛擬碼 如果看不懂的話 學習這些程式設計教材將會變得十分痛苦

不過 相對來說 在大一 由於我們最開始學習的程式語言便是python 這門語言被譽為可以執行的虛擬碼並不是沒有原因的 它相比其它語言來說確實十分容易閱讀與理解 簡單來說 虛擬碼和python都已經非常接近英語的使用環境 因此 都很易於理解

關於低階程式設計語言 這部分內容我以前也算有所涉獵 首先是對命令列的使用需要一定的組合語言知識 另外是當時進行演算法競賽時 有一門比較重要的技術被稱為對拍 這個過程需要幾個資料生成器進行loop 需要用命令列進行 這種能力對日後使用python這種非gui介面的系統時有很大的幫助

第七章 問題求解與演算法設計

本章的內容在我看來幾乎是對於學習一門計算機語言最重要的內容 也是我曾經最為深入學習過的內容 演算法設計不僅僅是侷限於一部分的知識 這份思想將會貫穿整個本專業的學習 本章介紹了許多經典的演算法 對此我也想舉一些曾經學過的例子放在這裡

例如 本章介紹了十分經典的排序問題 其中便有氣泡排序 對此有虛擬碼如下

輸入:一個長度為 n 的排列 p[1...n]
輸出:p 排序後的結果。
for i = 1 to n do
	for j = 1 to n - 1 do
		if(p[j] > p[j + 1])
			交換 p[j] 與 p[j + 1] 的值
又有 本章介紹了二分查詢 對此方法思想簡述如下

**首先找到這串數字中間位置的那個數,然後與需要查詢的數比較如果要查詢的數小於中間那個數,那麼答案肯定在左邊如果要查詢的數大於中間那個數,那麼答案肯定在右邊如果等於的話繼續在左邊找,因為找到的位置還不能確定是第一個數如此重複,直到要查詢的區域變為需求。

總之 演算法設計是一個將會貫穿整個專業學習的內容 日後的部落格裡應該還會有大量的這部分內容