- 在线播放
- 分集下载
- 1.1.1 关于数据组织
- 1.1.2 关于空间使用
- 1.1.3 关于算法效率
- 1.1.4 抽象数据类型
- 1.2.1 算法的定义
- 1.2.2 什么是好的算法
- 1.2.3 复杂度的渐进表示
- 1.3.1 应用实例 - 算法1 & 2
- 1.3.2 应用实例 - 算法3
- 1.3.3 应用实例 - 算法4
- 2.1.1 引子:多项式表示
- 2.1.2 线性表及顺序存储
- 2.1.3 顺序存储的插入和删除
- 2.1.4 链式存储及查找
- 2.1.5 链式存储的插入和删除
- 2.1.6 广义表与多重链表
- 2.2.1 什么是堆栈
- 2.2.2 堆栈的顺序存储实现
- 2.2.3 堆栈的链式存储实现
- 2.2.4 堆栈应用:表达式求值
- 2.3.1 队列及顺序存储实现
- 2.3.2 队列的链式存储实现
- 2.4 应用实例:多项式加法运算
- 小白专场:多项式乘法与加法运算①
- 小白专场:多项式乘法与加法运算②
- 小白专场:多项式乘法与加法运算③
- 线性结构之习题选讲:Reversing Linked List①
- 线性结构之习题选讲:Reversing Linked List②
- 线性结构之习题选讲:Reversing Linked List③
- 3.1.1 引子(顺序查找)
- 3.1.2 引子(二分查找例子)
- 3.1.3 引子(二分查找实现)
- 3.1.4 树的定义和术语
- 3.1.5 树的表示
- 3.2.1 二叉树的定义及性质
- 3.2.2 二叉树的存储结构
- 3.3.1 先序中序后序遍历
- 3.3.2 中序非递归遍历
- 3.3.3 层序遍历
- 3.3.4 遍历应用例子
- 小白专场:树的同构①
- 小白专场:树的同构②
- 4.1.1 二叉搜索树及查找
- 4.1.2 二叉搜索树的插入
- 4.1.3 二叉搜索树的删除
- 4.2.1 什么是平衡二叉树
- 4.2.2 平衡二叉树的调整
- 小白专场:是否同一棵二叉搜索树①
- 小白专场:是否同一棵二叉搜索树②
- 小白专场:是否同一棵二叉搜索树③
- 5.1.1 什么是堆
- 5.1.2 堆的插入
- 5.1.3 堆的删除
- 5.1.4 堆的建立
- 5.2.1 什么是哈夫曼树
- 5.2.2 哈夫曼树的构造
- 5.2.3 哈夫曼编码
- 5.3.1 集合的表示及查找
- 5.3.2 集合的并运算
- 小白专场:堆中的路径
- 小白专场:File Transfer①
- 小白专场:File Transfer②
- 小白专场:File Transfer③
- 小白专场:File Transfer④
- 树之习题选讲-Tree Traversals Again①
- 树之习题选讲-Tree Traversals Again②
- 树之习题选讲-Complete Binary Search Tree①
- 树之习题选讲-Complete Binary Search Tree②
- 树之习题选讲-Complete Binary Search Tree③
- 树之习题选讲- Huffman Codes①
- 树之习题选讲- Huffman Codes②
- 树之习题选讲- Huffman Codes③
- 6.1.1 什么是图 - 定义
- 6.1.2 什么是图 - 邻接矩阵表示法
- 6.1.3 什么是图 - 邻接表表示法
- 6.2.1 图的遍历 - DFS
- 6.2.2 图的遍历 - BFS
- 6.2.3 图的遍历 - 为什么需要两种遍历
- 6.2.4 图的遍历 - 图不连通怎么办
- 6.3 应用实例:拯救007
- 6.4 应用实例:六度空间
- 小白专场:如何建立图①
- 小白专场:如何建立图②
- 小白专场:如何建立图③
- 小白专场:如何建立图④
- 小白专场:如何建立图⑤
- 小白专场:如何建立图⑥
- 7.1.1 概述
- 7.1.2 无权图的单源最短路
- 7.1.2-无权图的单源最短路示例
- 7.1.3 有权图的单源最短路
- 7.1.3 有权图的单源最短路示例
- 7.1.4 多源最短路算法
- 小白专场:哈利•波特的考试①
- 小白专场:哈利•波特的考试②
- 小白专场:哈利•波特的考试③
- 小白专场:哈利•波特的考试④
- 8.1.1 Prim算法
- 8.1.2 Kruskal算法
- 8.2.1 拓扑排序
- 8.2.2 关键路径
- 图之习题选讲-旅游规划①
- 图之习题选讲-旅游规划②
- 9.1.1 概述
- 9.1.2 冒泡排序
- 9.1.3 插入排序
- 9.1.4 时间复杂度下界
- 9.2 希尔排序
- 9.3.1 选择排序
- 9.3.2 堆排序
- 9.4.1 有序子列的归并
- 9.4.2 递归算法
- 9.4.3 非递归算法
- 10.1.1 算法概述
- 10.1.2 选主元
- 10.1.3 子集划分
- 10.1.4 算法实现
- 10.2.1 算法概述
- 10.2.2 物理排序
- 10.3.1 桶排序
- 10.3.2 基数排序
- 10.3.3 多关键字的排序
- 10.4 排序算法的比较
- 排序之习题选讲-Insert or Merge①
- 排序之习题选讲-Insert or Merge②
- 排序之习题选讲Sort with Swap(0,*)①
- 排序之习题选讲Sort with Swap(0,*) ②
- 11.1.1 引子_散列的基本思路
- 11.1.2 什么是散列表
- 11.2.1 数字关键词的散列函数构造
- 11.2.2 字符串关键词的散列函数构造
- 11.3.1 开放定址法
- 11.3.2 线性探测
- 11.3.3 线性探测—字符串的例子
- 11.3.4 平方探测法
- 11.3.5 平方探测法的实现
- 11.3.6 分离链接法
- 11.4 散列表的性能分析
- 11.5 文件中单词词频统计
- 小白专场:电话聊天狂人①
- 小白专场:电话聊天狂人②
- 小白专场:电话聊天狂人③
- 小白专场:电话聊天狂人④
- 散列查找之习题选讲-Hashing - Hard Version
- 串的模式匹配(KMP算法)①
- 串的模式匹配(KMP算法)②
- 串的模式匹配(KMP算法)③
- 串的模式匹配(KMP算法)④
- 串的模式匹配(KMP算法)⑤
数据结构的相关介绍
讲师——陈越、何钦铭 转自:中国大学MOOC——浙江大学频道 一、章节大标题发在评论区,请注意查看方便自行选择相应内容跳转学习。 二、常见问题 ①Q:我是初学者,只会某一门语言适合看吗?这是用某语言讲的吗? A:只要掌握了一门编程语言即可用来学习。其实大多数语言的基础语句其实都差不多的,所以保证一定能看懂代码的意义。 ②Q:适合考研人士使用吗? A:不适合。属于入门视频,虽然本人没有经历考研,但观察舍友学习的内容,考研的内容应该要求更多,但我觉得如果本身学的不怎么好的,用于过一下基础还是可以的。 ③Q:视频全吗? A:全。上传视频的初衷就是另外一个up传的不全,我自己学不下去。 此外, 大家可以去中国大学MOOC里面去进行学习喔,有课件、也能和大家一起讨论学习。 不过中国大学MOOC后面有些习题所在的章节的位置应该是不太对的,所以我自行调整了下视频顺序,使得习题对应章节,希望不影响大家的观看,当然如果存在问题请评论区留言让我修改回来。 如果视频存在问题请在留言区回复我。
数据结构与算法是计算机学科的算法理论基础和软件设计的技术基础,主要研究信息的逻辑结构及其操作在计算机中的表示和实现。我们分享的这部数据结构与算法精讲教程给大家全面讲述了数据结构的知识与应用、计算机算法的设计与分析方法,主要内容包括线性表、树、图和广义表、算法设计策略以及查找与排序算法等知识。欢迎大家前来备战观看和学习!
数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。数据结构往往同高效的检索算法和索引技术有关。
一般认为,一个数据结构是由数据元素依据某种逻辑联系组织起来的。对数据元素间逻辑关系的描述称为数据的逻辑结构;数据必须在计算机内存储,数据的存储结构是数据结构的实现形式,是其在计算机内的表示;此外讨论一个数据结构必须同时讨论在该类数据上执行的运算才有意义。一个逻辑数据结构可以有多种存储结构,且各种存储结构影响数据处理的效率。
在许多类型的程序的设计中,数据结构的选择是一个基本的设计考虑因素。许多大型系统的构造经验表明,系统实现的困难程度和系统构造的质量都严重的依赖于是否选择了最优的数据结构。许多时候,确定了数据结构后,算法就容易得到了。有些时候事情也会反过来,我们根据特定算法来选择数据结构与之适应。不论哪种情况,选择合适的数据结构都是非常重要的。
选择了数据结构,算法也随之确定,是数据而不是算法是系统构造的关键因素。这种洞见导致了许多种软件设计方法和程序设计语言的出现,面向对象的程序设计语言就是其中之一。
在计算机科学中,数据结构是一门研究非数值计算的程序设计问题中计算机的操作对象(数据元素)以及它们之间的关系和运算等的学科,而且确保经过这些运算后所得到的新结构仍然是原来的结构类型。
“数据结构”作为一门独立的课程在国外是从1968年才开始设立的。 1968年美国唐纳德·克努特(Donald Ervin Knuth)教授开创了数据结构的最初体系,他所著的《计算机程序设计艺术》第一卷《基本算法》是第一本较系统地阐述数据的逻辑结构和存储结构及其操作的著作。“数据结构”在计算机科学中是一门综合性的专业基础课,数据结构是介于数学、计算机硬件和计算机软件三者之间的一门核心课程。数据结构这一门课的内容不仅是一般程序设计(特别是非数值性程序设计)的基础,而且是设计和实现编译程序、操作系统、数据库系统及其他系统程序的重要基础。



