數據結構與算法是北京大學於2018年02月26日首次在中國大學MOOC開設的慕課課程,是國家精品線上開放課程。該課程授課教師為張銘、陳斌、盧宗青、劉雲淮、趙海燕、宋國傑、黃駿、鄒磊、王騰蛟。據2021年2月中國大學MOOC官網顯示,該課程已開課4次。
數據結構與算法課程內容包括數據結構與抽象數據類型、算法特性及分類、算法效率與度量、線性結構、順序表、鍊表、棧與佇列、棧與遞歸、遞歸轉非遞歸、字元串的存儲結構、字元串運算的算法實現、字元串的快速模式匹配、二叉樹的抽象數據類型、二叉樹的搜尋、二叉樹的存儲結構、樹與二叉樹的等價轉換、樹的抽象數據類型及樹的遍歷、樹的鏈式存儲結構、樹的父指針表示法、樹的順序存儲和K叉樹、圖的概念和抽象數據類型、圖的存儲結構、圖的遍歷、內排序、檢索等內容。
基本介紹
- 中文名:數據結構與算法
- 開課時間:2018年02月26日(首次)
- 提供院校:北京大學
- 類別:國家精品線上開放課程
- 授課平台:中國大學MOOC
- 授課教師:張銘、陳斌、盧宗青、劉雲淮、趙海燕、宋國傑、黃駿、鄒磊、王騰蛟
課程性質
課程背景
課程定位
適應對象
開課信息
開課次數 | 開課時間 | 學時安排 | 授課教師 | 參與人數 |
---|---|---|---|---|
第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 |
課程簡介
課程大綱
第一章 概論(兩周) | 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月 | 清華大學出版社 |