開課簡介
一,男孩別哭
每個抑鬱症患者都有被迫害妄想症,而我已經病入膏肓。我不想自己的負面情緒影響到其他人,白天微笑,關了燈就是玻璃心。一個可愛的女孩走進我的生活,而我竟然感到不知所措----不敢接受,不能做到淡泊。茫茫人生,真的不知何去何從。哎,算了,投身程式碼,程式設計使我快樂。
二,關於教材
這門課,我的專業課老師給我們選的教材是嚴蔚敏和吳為民編著的資料結構(C語言版),清華大學出版社。這種教材說不出是好還是不好,我去圖書館看了看,基本上現在流行的教材都是這種風格。畢竟參考書和教材是有區別的。教材書都是一家之言,而教材必須做到嚴謹。所以說教材大部分知識點肯定不夠生動,這也就是為什麼教材老師不講自己看不懂,老師講過後,自己越看越有味道。
講義不厭百回讀,熟讀深思子自知。我希望每個學生能重視老師講的話
三,緒論
1,什麼是資料結構
資料結構是一門研究非數值計算的程式設計問題中計算機的操作物件以及它們之間關係和操作等的學科。
首先,資料結構是一門學科,資料結構作為一門獨立的課程在國外是1968年才開始開設的,它是從離散數學(邏輯數學的一個分支,所幸我已經學習過,很有趣)分離出來的一個實踐類分支。然後,注意它的研究物件----非數值的物件以及它們之間關係和操作。在電腦科學中起到承上啟下的作用。
如此說來,資料結構可以用一個三元組表示:
Data_Structure=(D,R,O)
D=data 資料 R=relation 關係 O=operate操作
真不敢相信,我竟然英語會掛科==
2,基本概念和術語
資料(data):是對客觀事物的符號表示,在電腦科學中指的是能夠輸入到計算機中且能被計算機程式處理的符號的總稱。
資料元素(data element):資料的基本單位,類似於資料庫中的一條記錄。
資料項:資料不可分割的最小單位
資料物件(data object):性質相同(指的是資料項的型別和個數相同)的資料元素的集合,是資料的一個子集。
資料的邏輯結構:線性結構(線性表,棧,佇列,串,陣列),非線性結構 (樹,圖)
資料的儲存結構:順序儲存,鏈式儲存
資料的運算:插入,修改,排序,查詢,刪除(運算的實現很依賴資料的儲存結構)
三,抽象資料型別的實現
作為基本的資料型別,這本書上的程式碼使用類C語言的一種虛擬碼實現的,實驗課上老師要求我們使用C語言實現。c語言的基本語法還可以,但是對於指標我總是弄混,看來這是短板。
演算法的時間複雜度:
舉個例子:
for(int i=1;i<=n;i=i*2){
j++;
}
這個其實就是計算迴圈次數的問題,pow(2,x)=n,得出x=log2(n).所以時間複雜度是對數函式。 一般來說: O(1)< O(log2n) <O(n)< O(nlog2n) < O(n2) < O(n3) < O(2n)
演算法的空間複雜度:一個演算法的空間複雜度僅僅取決於一個演算法所需要的輔助變數所佔有的空間,因為程式是處理資料的而不是儲存資料的。
一個演算法的設計取決於你的選取的邏輯結構,但是一個演算法的實現就取決於儲存結構了。
採用不同的儲存結構,演算法處理資料的效率也是不同的。
邏輯結構是唯一的而儲存結構是不唯一的。
四,隨便說幾句
寫的亂了,下次得注意。14點30分有實驗課,晚上接著寫吧。
相關文章
- 《JavaScript前端開發與例項教程(微課影片版)》簡介JavaScript前端
- Docker系列課程01-Docker簡介Docker
- 課程 3: Content Providers 簡介IDE
- 軟工開課介紹部落格軟工
- 敏捷開發簡介敏捷
- Defi開發簡介
- MVC開發簡介MVC
- 自然語言處理(NLP)簡介 | NLP課程自然語言處理
- 移動web——移動web開發簡介,WebStorgae簡介Web
- Google VR 開發簡介GoVR
- 【課程簡介】HTML5 Game Development/基於HTML5的遊戲開發HTMLGAMdev遊戲開發
- 計算機控制技術課程簡介與資料計算機
- HiSpark系列開發套件簡介Spark套件
- Flash開發環境簡介開發環境
- 課程介紹
- 【優才系列公開課】第四十六講:Swift 語言簡介及未來開發生態Swift
- 開源公開課丨 ChunJun 資料傳輸模組介紹
- BI之SSAS完整實戰教程1 -- 開篇, BI簡介 & SSAS簡介
- Omni/USDT PHP 開發包簡介PHP
- 技術簡介——後端開發後端
- 郵件開發:Javamail、JAF簡介JavaAI
- MongoDB JVM 開發庫使用簡介MongoDBJVM
- 移動應用程式開發簡介!
- 跨平臺開發技術簡介!
- 信貸風控模型開發----模型簡介模型
- 【轉載】軟體開發模式簡介模式
- Android開源框架Afinal簡介Android框架
- 鴻蒙開發Hvigor任務簡介鴻蒙Go
- 簡介
- JavaScript課程——Day07(物件簡介、Math物件、時間物件、字串物件)JavaScript物件字串
- React簡書開發實戰課程筆記——4React筆記
- chrome外掛開發簡介(一)——開發入門Chrome
- Jira使用簡介 HP ALM使用簡介
- java大資料最全課程學習筆記(3)--HDFS 簡介及操作Java大資料筆記
- 安全軟體開發生命週期簡介
- Flutter #0 移動開發技術簡介Flutter移動開發
- jQuery外掛開發流程簡單介紹jQuery
- 簡訊:四門新IT類線上開放課程上線