尚硅谷Java培训

玩转Scala数据结构和算法

视频介绍

算法是程序的灵魂,为什么有些程序可以在海量数据计算时,依然保持高速计算,大家可能会说: 程序使用了内存计算框架(比如Spark)和缓存技术(比如Redis等),那再深入的思考一下,这些计算框架和缓存技术又是怎样被技术高手设计出来的呢? 拿实际工作经历来说, 在Unix下开发服务器程序,功能是要支持上千万人同时在线, 在上线前,做内测,一切OK,可上线后,服务器就支撑不住了, 公司的CTO对代码进行优化,再次上线,坚如磐石。那一瞬间,你就能感受到程序是有灵魂的,就是算法。如果你不想永远都是代码工人,那就花时间来研究下数据结构和算法吧.
本课程是使用Scala语言来讲解数据结构和算法,内容包括: 稀疏数组、单向队列、环形队列、单向链表、双向链表、环形链表、约瑟夫问题、栈、表达式的转换与求值、递归与回溯、迷宫问题、冒泡排序、选择排序、插入排序、快速排序、归并排序、排序速度分析、二分查找、散列、哈希表、二叉树、二叉树与数组转换、二叉排序树(BST)、其它二叉树介绍(AVL 线索二叉树 赫夫曼树)。通过学习,学员能掌握主流数据结构的实现机制,开阔编程思路,提高优化程序的能力。

视频目录 选集

  • 01.数据结构和算法基本介绍
  • 02.数据结构和算法几个实际问题
  • 03.稀疏数组介绍
  • 04.稀疏数组压缩实现
  • 05.稀疏数组解压实现
  • 06.队列介绍
  • 07.单向队列实现
  • 08.单向队列问题分析
  • 09.环形队列(1)
  • 10.环形队列(2)
  • 11.链表说明和应用场景
  • 12.单向链表-人员管理系统说明
  • 13.单向链表-添加和遍历
  • 14.单向链表-有序插入节点
  • 15.单向链表-修改节点
  • 16.单向链表-删除节点
  • 17.双向链表基本介绍
  • 18.双向链表的实现
  • 19.链表的经典应用-约瑟夫问题
  • 20.约瑟夫问题-形成环形和遍历
  • 21.约瑟夫问题-算法思路分析
  • 22.约瑟夫问题-算法的实现
  • 23.栈的基本介绍
  • 24.栈的基本使用
  • 25.使用栈计算表达式的思路
  • 26.编写数栈和符号栈
  • 27.完成单数表达式运算(1)
  • 28.完成单数表达式运算(2)
  • 29.完成多位数表达式运算
  • 30.温故知新
  • 31.递归的应用(迷宫回溯)
  • 32.递归的机制分析
  • 33.递归能解决的问题
  • 34.迷宫解决思路和创建地图
  • 35.递归回溯解决迷宫问题
  • 36.迷宫问题小结
  • 37.冒泡排序
  • 38.选择排序分析和实现
  • 39.插入排序的思路分析
  • 40.插入排序的实现
  • 41.快速排序思路分析
  • 42.快速排序代码实现
  • 43.归并排序的思路分析
  • 44.归并排序的实现和分析
  • 45.查找的基本介绍
  • 46.二分查找实现和分析
  • 47.二分查找大量相同值
  • 48.二分查找的小结
  • 49.哈希(散列)表的概述
  • 50.哈希(散列)表实现机制分析
  • 51.哈希(散列)表的添加
  • 52.哈希(散列)表的遍历
  • 53.哈希(散列)表的查找
  • 54.哈希(散列)表的小结
  • 55.二叉树能解决的问题
  • 56.树常用术语
  • 57.满二叉树和完全二叉树
  • 58.二叉树的前序中序后序遍历
  • 59.二叉树的前序中序后序查找
  • 60.二叉树节点删除
  • 61.二叉树节点删除扩展提示
  • 62.顺序存储二叉树
  • 63.二叉排序树的介绍
  • 64.二叉排序树-创建和遍历
  • 65.二叉排序树-检索父子节点
  • 66.二叉排序树-删除叶子节点
  • 67.二叉排序树-删除非叶子节点(1)
  • 68.二叉排序树-删除非叶子节点(2)
  • 69.二叉排序树-删除无父节点的节点
  • 70.其它二叉树(AVL 赫夫曼树等)