天天看點

快速排序 php記憶體超限,資料結構與算法設計

spContent=學了一門程式設計語言不知道能幹啥?來學資料結構就對啦!

學會程式設計相當于會砌豬圈的泥瓦匠,學完資料結構就會蓋個雙層小樓啦~ 同時還可以一窺構築摩天大廈的奇門武功!

歡迎勤奮的小白活潑亂入!十周修煉,得入門徑,一代大俠,從此出發 —— 快來吧~ ^_^

—— 課程團隊

課程概述

“資料結構”是計算機科學與技術專業、軟體工程專業甚至于其它電氣資訊類專業的重要專業基礎課程。它所讨論的知識内容和提倡的技術方法,無論對進一步學習計算機領域的其它課程,還是對從事大型資訊工程的開發,都是重要而必備的基礎。

程式設計解決問題往往有多種方法,且不同方法之間的效率可能相差甚遠。程式的時間和空間效率,不僅跟資料的組織方式有關,也跟處理流程的巧妙程度有關。本課程将介紹并探讨有關資料組織、算法設計、時間和空間效率的概念和通用分析方法,幫助學員學會資料的組織方法和一些典型算法的實作,能夠針對問題的應用背景分析,選擇合适的資料結構,進而培養進階程式設計技能。

授課目标

通過本課程的學習,學生将基本掌握資料結構和算法基礎知識、算法設計與分析的技術和方法,提高程式設計的品質;能夠根據問題的性質,選擇合理的資料結構,并對時間複雜性進行必要的控制,培養解決實際問題的能力。為後續相關課程的學習和以後從事相關的研究和開發工作打下紮實的基礎。

成績要求

本課程成績滿分100分。由以下部分構成:

線上學習時長和測試20分

線下考試和作業80分

課程大綱

預備知識

學過一門程式設計語言,具有一定程式設計基礎,即可了解主要内容,因為資料結構本質上是不依賴于程式設計語言的。但由于算法描述多用類似C語言的僞碼,且“小白系列”僅講解C語言的算法實作,是以如果學過C語言會更容易接受。

參考資料

1、教材

嚴蔚敏、吳偉民編著,清華大學出版社,2019年6月

2、推薦教輔和資料:

(1)

(2)陳越、何欽銘、徐鏡春、魏寶剛、楊枨 編著,高等教育出版社,2016年6月

(3),陳越、何欽銘、徐鏡春、魏寶剛、楊枨 編著,高等育出版社,2019年7月

3、課程練習網站:拼題A(Programming Teaching Assistant):https://pintia.cn/ 本課程的程式設計練習将在這裡布置。

PAT(Programming Ability Test)官網:https://www.patest.cn/ 提供全部考試真題與報名入口。

常見問題

0。我應該怎麼設定賬号開始學習呀?

答:同時在兩個視窗登入拼題A和中國大學MOOC,進入拼題A使用者名下的“個人中心”找“我的綁定”,點選“綁定中國大學MOOC”,媽媽再也不用擔心你學完了沒成績啦!然後繼續在“個人資訊”中輸入本學期的“邀請碼”,就可以“應邀做題”啦~

1。我不是計算機專業的,能學這門課嗎?

答:隻要會寫程式就能學。

2。我數學不好,能學這門課嗎?

答:會算術就可以了…… 有個别例子涉及基礎數學概念(比如什麼是多項式),花一分鐘上網搜尋一下定義就可以搞定。

3。我不會寫程式,能學這門課嗎?

答:不能…… 還是先學會寫程式再說吧~ 隔壁翁恺老師的C語言講得很好懂,推薦~

4。學這門課每周要花多少時間?

答:平均4-8小時,開始可能輕松一點,後面的課業會越來越重 —— 這樣你才能長進嘛~

常見問題

*為什麼我的程式得到了“傳回非零”?傳回零表示一個程式正常結束,如果沒有傳回零,則系統認為程式沒有正常結束,這時即便輸出了正确的内容也不予通過。

C 或 C++ 代碼請确認 int main 函數最終會傳回 0,不要聲明為 double main 或者 void main

有異常的語言,請确認程式處理了可能抛出的異常

*程式的時間和記憶體占用是如何計算的?

程式的運作時間為程式在所有 CPU 核占用的時間之和,記憶體占用取程式運作開始到結束占用記憶體的最大值。

*為什麼同樣的程式運作時間和所用記憶體會不同?

程式運作時間會受到許多因素的影響,尤其是在現代多任務作業系統以及在使用動态庫的情況下,多次使用同一輸入運作同一程式所需時間和記憶體有一些不同是正常

現象。我們的題目給出的運作限制一般為标準程式的若幹倍,也就是說,選用正确的算法和合适的語言,那麼運作限制是富餘的。

*不同語言的時間限制和記憶體限制是相同的嗎?

是相同的,我們認為選擇合适的程式設計語言也是一項必備技能,是以沒有為不同語言設定不同的限制條件。