-
數據結構與算法
(北京大學提供的慕課)
鎖定
- 中文名
- 數據結構與算法
- 開課時間
- 2018年02月26日(首次)
- 提供院校
- 北京大學
- 類 別
- 國家精品在線開放課程
- 授課平台
- 中國大學MOOC
- 授課教師
- 張銘、陳斌、盧宗青、劉雲淮、趙海燕、宋國傑、黃駿、鄒磊、王騰蛟
數據結構與算法課程性質
數據結構與算法課程背景
計算機是現代社會中用於解決問題的重要工具,支撐這個工具高效運轉的就是其後的各種系統程序、應用程序。數據結構,是抽象的表示數據的方式;算法,則是計算的一系列有效、通用的步驟。算法與數據結構是程序設計中相輔相成的兩個方面,是計算機學科的重要基石。
[1]
數據結構與算法課程定位
數據結構與算法適應對象
數據結構與算法開課信息
開課次數 | 開課時間 | 學時安排 | 授課教師 | 參與人數 |
---|---|---|---|---|
第1次開課 | 2018年02月26日 ~ 2018年07月01日 | 4-8小時每週 | 張銘、陳斌、盧宗青、劉雲淮、趙海燕、宋國傑、黃駿、鄒磊 | 30697 |
第2次開課 | 2018年09月17日 ~ 2019年01月13日 | 4-8小時每週 | 張銘、陳斌、趙海燕、宋國傑、黃駿、鄒磊、王騰蛟 | 50179 |
第3次開課 | 2019年09月09日 ~ 2020年01月13日 | 3-5小時每週 | 張銘、趙海燕、王騰蛟、宋國傑、黃駿、鄒磊 | 55514 |
第4次開課 | 2020年09月21日 ~ 2021年01月20日 | 3-5小時每週 | 張銘、王騰蛟、趙海燕、宋國傑、鄒磊 | 13281 |
數據結構與算法課程簡介
數據結構與算法圍繞着“算法+數據結構=程序”的思路,以問題求解為導向進行學習,運用問題抽象、數據抽象、算法抽象來分析問題,應用適當的數據結構和算法來設計和實現相應的程序。在求解實際問題方面,該課程會學習到通過權衡時空和其他資源開銷,利用數據結構來組織數據、設計高效的算法、完成高質量的程序以滿足錯綜複雜的實際應用需要。課程所學到的內容會被利用到計算機科學後續的各個課程中,如操作系統、軟件工程、數據庫概論、編譯技術、計算機圖形學、人機交互等。
[1]
數據結構與算法課程大綱
第一章 概論(兩週) | 4.4字符串的快速模式匹配(選修) | 8.4交換排序(冒泡排序、快速排序) |
1.1課程介紹 | 第五章 二叉樹(兩週) | 8.5歸併排序 |
1.2問題求解 | 5.1二叉樹的概念 | 8.6桶排序 |
1.3數據結構與抽象數據類型 | 5.2二叉樹的抽象數據類型 | 8.7靜態基數排序(選修) |
1.4算法特性及分類 | 5.3二叉樹的搜索 | 8.8鏈式基數排序(選修) |
1.5算法效率與度量 | 5.4二叉樹的存儲結構 | 8.9索引排序(選修) |
1.6補充 面向對象簡介(選修) | 5.5二叉搜索樹 | 8.10排序算法的時間代價 |
1.7補充 類的特殊成員(選修) | 5.6堆與優先隊列 | 第十章 檢索 |
1.8補充 模版函數與模版類(選修) | 5.7 Huffman樹及其應用 | 10.1檢索的概念 |
1.9補充 輸入輸出流(選修) | 第六章 樹 | 10.2基於線性表的檢索 |
第二章 線性表 | 6.1樹的定義、樹與二叉樹的等價轉換 | 10.3集合的檢索 |
2.1線性結構 | 6.2樹的抽象數據類型及樹的遍歷 | 10.4散列表的概念和散列函數 |
2.2順序表 | 6.3樹的鏈式存儲結構 | 10.5散列衝突處理 |
2.3鏈表 | 6.4樹的父指針表示法(選修) | 10.6散列的實現及性能分析 |
2.4順序表和鏈表的比較 | 6.5樹的順序存儲和K叉樹 | 擴展:第九章(選修) |
第三章 棧與隊列 | 第七章 圖 | 9.1 主存儲器和外存儲器 |
3.1棧 | 7.1圖的概念和抽象數據類型 | 9.2 文件的組織和管理 |
3.2棧與遞歸 | 7.2圖的存儲結構 | 9.3 外排序 |
3.3遞歸轉非遞歸(選修) | 7.3圖的遍歷 | 擴展:字典(選修) |
3.4隊列 | 7.4最短路徑 | B樹B+樹 |
3.5隊列的應用 | 7.5最小生成樹 | Trie 樹 |
第四章 字符串 | 第八章 內排序(兩週) | AVL樹 |
4.1字符串基本概念 | 8.1 排序問題的基本概念 | Splay樹 |
4.2字符串的存儲結構 | 8.2插入排序 ( Shell 排序) | |
4.3字符串運算的算法實現 | 8.3選擇排序 (堆排序) |
數據結構與算法課前預備
數據結構與算法預備知識
學習數據結構與算法課程需要下面課程裏面的部分基本知識:
數據結構與算法學習資料
書名 | 作者 | ISBN | 出版時間 | 出版社 |
---|---|---|---|---|
《數據結構與算法》 | 張銘,王騰蛟,趙海燕 | 9787040239614 | 2008年6月 | 高等教育出版社 |
《數據結構與算法實驗教程》 | 張銘,趙海燕,王騰蛟 | 9787040302141 | 2011年1月 | |
《數據結構與算法--學習指導與習題解析》 | 張銘、趙海燕、王騰蛟 | 704017829X | 2005年10月 | 高等教育出版社 |
《數據結構算法與應用—C++語言描述》 | S. Sahni著,汪詩林等譯 | 9787111076452 | 2000年 | |
Algorithms Design Techniques and Analysis | M. H. Alsuwaiyel | 9789810237400 | 2003年1月 | 電子工業出版社影印 |
Inroduction to Algorithms | T. H.Cormen, C. E.Leiserson, R. L. Rivest, C. Stein | / | 2002年5月 | 高等教育出版社影印 |
《計算機程序設計藝術,第1卷基本算法》 | D. E.Knuth著,蘇運霖譯 | 9787118027990 | 2002年 | |
Algorithm Design | J. Kleinberg, E. Tardos | 9780321295354 | 2005年 | Addison Wesley |
Data Structures and Algorithm Analysis in C++, Third Edition | C. A. Shaffer | 9780486485829 | 2011年 | Dover Publications |
《算法設計與分析》 | 王曉東 | 9787302061861 | 2003年1月 | 清華大學出版社 |
數據結構與算法授課目標
通過學習此課程,提高理論、抽象、設計的能力;在紮實的經典理論基礎上,運用問題抽象、數據抽象、算法抽象來分析問題,應用適當的數據結構和算法來設計和實現相應的程序;通過課程學習,抽象思維能力、問題求解能力能得到較大提升,編程能力和代碼質量會有質的飛躍。
[1]
數據結構與算法所獲榮譽
數據結構與算法教師簡介
陳斌,北京大學地球與空間科學學院教授。
[15]
盧宗青,北京大學助理教授。
[16]
劉雲淮,北京大學研究員。
[17]
黃駿,北京大學高能效計算與應用中心助理教授。
[20]
- 參考資料
-
- 1. 數據結構與算法:第1次開課 .中國大學MOOC[引用日期2021-02-26]
- 2. 數據結構與算法:第4次開課 .中國大學MOOC[引用日期2021-02-26]
- 3. 教育部關於公佈2018年國家精品在線開放課程認定結果的通知 .中華人民共和國教育部政府門户網站[引用日期2021-02-26]
- 4. 數據結構與算法:第2次開課 .中國大學MOOC[引用日期2021-02-26]
- 5. 數據結構與算法:第3次開課 .中國大學MOOC[引用日期2021-02-26]
- 6. 數據結構與算法 .中國國家圖書館[引用日期2021-02-26]
- 7. 數據結構與算法實驗教程 .中國國家圖書館[引用日期2021-02-26]
- 8. 張銘, 趙海燕, 王騰蛟. 數據結構與算法:學習指導與習題解析[M]. 高等教育出版社, 2005.
- 9. 數據結構、算法與應用 .中國國家圖書館[引用日期2021-02-26]
- 10. Algorithms Design Techniques and Analysis .中國國家圖書館[引用日期2021-02-26]
- 11. 計算機程序設計藝術(第1卷) (基本算法) .中國國家圖書館[引用日期2021-02-26]
- 12. Algorithm Design .中國國家圖書館[引用日期2021-02-26]
- 13. 算法設計與分析 .中國國家圖書館[引用日期2021-02-26]
- 14. 張銘 .中國大學MOOC[引用日期2021-02-26]
- 15. 陳斌 .中國大學MOOC[引用日期2021-02-26]
- 16. 盧宗青 .中國大學MOOC[引用日期2021-02-26]
- 17. 劉雲淮 .中國大學MOOC[引用日期2021-02-26]
- 18. 趙海燕 .中國大學MOOC[引用日期2021-02-26]
- 19. 宋國傑 .中國大學MOOC[引用日期2021-02-26]
- 20. 黃駿 .中國大學MOOC[引用日期2021-02-26]
- 21. 鄒磊 .中國大學MOOC[引用日期2021-02-26]
- 22. 王騰蛟 .中國大學MOOC[引用日期2021-02-26]
- 收起