Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Peking University

数据结构与算法第二部分 | Data Structures and Algorithms Part 2

Peking University via edX





我 们会围绕着“算法+数据结构=程序”的思路,以问题求解为导向进行学习。希望能够帮助大家提高理论、抽象、设计的能力。在扎实的经典理论基础上,运用问题 抽象、数据抽象、算法抽象来分析问题,应用适当的数据结构和算法来设计和实现相应的程序。通过课程学习,大家的抽象思维能力、问题求解能力将得到较大提 升,编程能力和代码质量会有质的飞跃!




在 第一部分学完了线性表、栈与队列、字符串、二叉树、树和图这些基础数据结构之后,第二部分我们将深入学习排序、检索、索引、高级数据结构以及数据结构应用 等内容。涉及快速排序、外排序等各种经典排序算法,集合、散列、位图等检索方法,B/B+树、Trie树等索引结构,广义表、多维数组等高级线性结 构,AVL、红黑树、伸展树等平衡二叉树。第二部分课程持续8周,学习者每周在本课程上需要投入4-8小时。本课程的本次开设得到Google研究经费支 持。

Computers are an important tool forproblemsolving and are deeply involvedin modern life.Computers perform operations on data. What is the logical relationship among data? How is data stored in computers? What algorithms are required to solve particular problems? These are the questions that will be answered in “Data Structures and Algorithms,” an important core course in Computer Science. The course also introduces students to fundamental data structures and classical algorithms used in more specialized courses,including Operating Systems, Software Engineering, Database Systems, CompilerPrinciples, Computer Graphics and Human Computer Interaction.

Niklaus Wirth described the important and indivisible link between algorithms and data structure in his book,Algorithms + Data Structures = Programs.

The course will build on Wirth’s ideas as it helps students improve their knowledge of theory and their ability to think abstractly to solve problems.Building on a solid theoretical foundation, studentswill analyze problems using data and algorithm abstraction. Students will learn how to organize data efficiently and make tradeoffs between space and time complexity, design efficient and effective algorithms, and implement high quality programs to solve complex real-world problems.After studying this course, students will be well prepared for further study and research in engineering and other computer-related areas.

This is an intermediate-level course appropriate for sophomore students majoring in computer science or other science/engineering disciplines. Students shouldhave learned "introduction to computing",with the knowledge of structured and object-oriented programming.

This course is presented in two eight-week sessions. In session 1, we learnt Linear Lists, Stacks, Queues, Strings, Binary Trees, Trees and Graphs, which are fundamental data structures. In the second session, we will study advanced data structures and algorithms, such as Sorting, Searching, Indexing, as well as their applications thoroughly. More detailed, these chapters include a variety of classic Sorting algorithms (Quicksort, External Sorting), Searching methods (Sets, Hash Tables, Bitmaps), Indexing structures (B/B+ trees, Trie trees), Advanced List-Structure (generalized lists, Multi-dimensional arrays) and Balanced Binary Trees (AVL, Red-Black trees, Splay trees). The second part of the course lasts eight weeks. Each week, student will spend 4-8 hours to follow this course.

Students who score 60% or higher will receive an Honor Code Certificate.

The Autumn 2014 Sessions of this course are supported by Google.

课程采用的算法语言? Which programming languages does the course use?

本课程采用基于C++的伪代码授课和出习题。编程作业是POJ自动评判的,该平台目前接受 C、C++、Java等都可以。

The course’s content and exercises are both based upon C++ pseudo code. Programming assignments are automatically assessed by POJ which accepts code written in C/C++ and JAVA.

Taught by

Ming Zhang 张铭

Related Courses


Start your review of 数据结构与算法第二部分 | Data Structures and Algorithms Part 2

Never Stop Learning!

Get personalized course recommendations, track subjects and courses with reminders, and more.

Sign up for free