課程信息
4.3
88 個評分
13 個審閱
專項課程

第 6 門課程(共 7 門),位於

100% online

100% online

立即開始,按照自己的計劃學習。
可靈活調整截止日期

可靈活調整截止日期

根據您的日程表重置截止日期。
完成時間(小時)

完成時間大約為31 小時

建議:每周4-8小时...
可選語言

中文(簡體)

字幕:中文(簡體)...
專項課程

第 6 門課程(共 7 門),位於

100% online

100% online

立即開始,按照自己的計劃學習。
可靈活調整截止日期

可靈活調整截止日期

根據您的日程表重置截止日期。
完成時間(小時)

完成時間大約為31 小時

建議:每周4-8小时...
可選語言

中文(簡體)

字幕:中文(簡體)...

教學大綱 - 您將從這門課程中學到什麼

1
完成時間(小時)
完成時間為 4 分鐘

欢迎来到高级数据结构与算法

学习了基本的数据结构后,我们已经可以用程序来解决现实中的一些问题了。但是,怎样提升程序在运行效率呢? 如何快速地把图书按序号从小到大整理好?如何通过一个ID编号在数据库中高效地查找相对应的信息?如何迅速找到所有内容中含有“数据结构”的文档?《高级数据结构与算法》将通过使用高级的数据结构和高效的算法,让你学会如何解决这些对运行时间要求比较严格的问题。 高级数据结构和算法能够根据实际情况,满足一些复杂问题对数据规模、运行时间的要求,帮助我们更有效地解决问题。当我们面对实际问题的时候,高级数据结构和算法让我们有更广泛的空间,选择出与问题本身最为契合的数据结构,并利用相关算法来提升运行效率。 完成这门课之时,你将掌握多维数组、广义表、Trie树、AVL树、伸展树等高级数据结构,并结合内排序、外排序、检索、索引有关的算法,高效地解决现实生活中一些比较复杂的应用问题。合理使用这些高级数据结构和相关算法是程序运行效率的关键因素,学好这门课会让你在之后的计算机专业课程以及项目设计中更得心应手,同时也将让你站在更高的角度去理解问题、设计程序。PS:我们这门课程一直处在不断地建设与优化当中,吸取了很多以往课程的经典视频,所以如果你看到视频中出现了不同课程的名字,也不要惊讶哦,因为你正在集百家所长:)...
Reading
2 個視頻(共 4 分鐘)
Video2 個視頻
本门课程介绍1分鐘
2
完成時間(小時)
完成時間為 4 小時

内排序(上)

生活中,排序操作无处不在,列队出操的时候,需要让同学们从矮到高依次站好,举行运动会的时候,会把每位运动员的成绩从高到低排序。在计算机的存储结构中,分为内存和外存,前者相对后者来说速度快、容量小,因此,当整个排序过程中所有的记录都可以直接放入内存中时,我们称之为内排序。可以按照什么策略来进行排序?每种排序算法的时间代价是多少?这一模块中,你将会学到三种类型的排序算法:插入排序、选择排序和交换排序,并了解到各个算法的稳定性和时间代价。重点:排序问题的基本概念,时间和空间复杂度分析(比较次数和移动次数,一个swap操作是3次移动);直接插入排序、Shell排序、直接选择排序、堆排序、冒泡排序、快速排序的实现。难点:快速排序的实现及其优化、时间复杂度分析。PS:我们这门课程一直处在不断地建设与优化当中,吸取了很多以往课程的经典视频,所以如果你看到视频中出现了不同课程的名字,也不要惊讶哦,因为你正在集百家所长:)...
Reading
4 個視頻(共 52 分鐘), 1 個閱讀材料, 2 個測驗
Video4 個視頻
插入排序15分鐘
选择排序8分鐘
交换排序21分鐘
Reading1 個閱讀材料
内排序(上) 演示文稿10分鐘
Quiz1 個練習
内排序(上)16分鐘
3
完成時間(小時)
完成時間為 5 小時

内排序(下)

有些算法时间代价太大?有的时候可以根据数据本身的特性,或是排序的特殊要求,调整排序的策略。例如,现在要将一叠试卷按得分从高到低排序,假设老师只给了“合格”、“不合格”两种分数,相信你立马就能整理好。原因就在于你并不需要再去整理所有“合格”试卷的相对次序了。本模块中,你将会学习到归并排序、分配排序和索引排序,并了解它们各自的基本思想、适用范围和时间代价。 重点:归并排序及其优化、桶式排序、静态/链式基数排序的实现、地址索引排序的结果整理。 难点:归并排序的实现、排序问题的下限的决策树分析方法(了解即可)。...
Reading
6 個視頻(共 86 分鐘), 1 個閱讀材料, 2 個測驗
Video6 個視頻
归并排序14分鐘
分配排序9分鐘
静态基数排序15分鐘
链式基数排序14分鐘
索引排序14分鐘
算法性能分析(基本掌握,不要求理论分析)17分鐘
Reading1 個閱讀材料
内排序(下) 演示文稿10分鐘
Quiz1 個練習
内排序(下)14分鐘
4
完成時間(小時)
完成時間為 4 小時

外排序

当待处理的数据对象非常多,以至于内存容纳不下所有数据时,如果我们仍旧按照内排序的算法进行排序,大量的I/O会使得时间代价非常大,那应该怎么办呢?一般我们需要将数据文件分成若干段,每次将一段放入内存中进行排序,得到一系列的顺串,最后通过逐趟归并顺串,形成对整个数据文件的排序文件。在这一模块中,你将学到如何让初始文件形成尽可能长的初始顺串、如何通过增加每次参与归并的顺串个数,来减少对数据扫描的趟数,从而减少访问外存次数提高排序效率。 重点:置换选择算法、二路归并算法、赢者树算法的基本思想和实现。 难点:败者树的类定义及其成员函数的实现。...
Reading
2 個視頻(共 35 分鐘), 1 個閱讀材料, 2 個測驗
Video2 個視頻
文件组织15分鐘
外排序算法20分鐘
Reading1 個閱讀材料
外排序 演示文稿10分鐘
Quiz1 個練習
外排序12分鐘

講師

Avatar

Prof. Ming Zhang 张铭

教授
School of Electronics Engineering and Computer Science北京大学计算机系

關於 Peking University

Peking University is determined to make its education openly accessible to students in China and around the world. With over 3000 faculty members, Peking University offers excellence in teaching and learning. Founded in 1898, Peking University (PKU) was the first national comprehensive university in China. For the past 115 years, with its hundreds of thousands of outstanding alumni, Peking University has made prominent contributions in the humanities and sciences to further China's prosperity and progress....

關於 程序设计与算法 專項課程

本专项课程旨在系统培养你的程序设计与编写能力。系列课程从计算机的基础知识讲起,无论你来自任何学科和行业背景,都能快速理解;同时我们又系统性地介绍了C程序设计,C++程序设计,算法基础,数据结构与算法相关的内容,各门课之间联系紧密,循序渐进,能够帮你奠定坚实的程序开发基础;课程全部配套在线编程测试,将有效地训练和提升你编写程序的实际动手能力。并通过结业实践项目为你提供应用程序设计解决复杂现实问题的锻炼,从而积累实际开发的经验。因此,我们希望本专项课程能够帮助你完成从仅了解基本的计算机知识到能够利用高质量的程序解决实际问题的转变。...
程序设计与算法

常見問題

  • 注册以便获得证书后,您将有权访问所有视频、测验和编程作业(如果适用)。只有在您的班次开课之后,才可以提交和审阅同学互评作业。如果您选择在不购买的情况下浏览课程,可能无法访问某些作业。

  • 您注册课程后,将有权访问专项课程中的所有课程,并且会在完成课程后获得证书。您的电子课程证书将添加到您的成就页中,您可以通过该页打印您的课程证书或将其添加到您的领英档案中。如果您只想阅读和查看课程内容,可以免费旁听课程。

還有其他問題嗎?請訪問 學生幫助中心