開課簡介

黑色月牙發表於2017-03-03

一,男孩別哭

每個抑鬱症患者都有被迫害妄想症,而我已經病入膏肓。我不想自己的負面情緒影響到其他人,白天微笑,關了燈就是玻璃心。一個可愛的女孩走進我的生活,而我竟然感到不知所措----不敢接受,不能做到淡泊。茫茫人生,真的不知何去何從。哎,算了,投身程式碼,程式設計使我快樂。

二,關於教材

這門課,我的專業課老師給我們選的教材是嚴蔚敏和吳為民編著的資料結構(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分有實驗課,晚上接著寫吧。

相關文章