C++递归、算法与数据结构训练营
递归、回溯、动态规划、图形、数据结构、排序和子串搜索算法
学习内容:
理解递归和堆栈内存
理解回溯
理解动态规划
了解基本数据结构
理解数组和链表
理解堆栈和队列抽象数据类型
了解树数据结构(二叉搜索树和堆)
理解哈希和基于哈希的数据结构,例如哈希表
理解图形算法
了解广度优先搜索和深度优先搜索
了解最短路径问题(Dijkstra 和 Bellman-Ford 算法)
理解子串搜索算法(Rabin-Karp、Knuth-Morris-Pratt 和 Z 算法)
理解排序算法
课程内容主题:
递归
搜索算法
回溯
动态规划
数据结构
数组
链表
堆栈
队列
图形
子串搜索算法
排序
课程要求:
C++ 基础知识
课程详细描述:
本课程适合对计算机科学感兴趣并希望从头开始用C++实现算法和数据结构的人。在每一章中,您将学习给定数据结构或算法的理论,并从头开始实现它们。
**第1章:递归**
– 递归背后的理论(递归函数调用)
– 栈内存和堆内存
– 操作系统的递归和堆栈内存
– 递归问题,例如汉诺塔问题
**第2章:回溯**
– 什么是回溯
– 如何用回溯法解决问题
– N皇后问题
– 着色问题
– 骑士之旅
**第3章:动态规划**
– 重叠子问题和动态规划
– “memoization”和“tabulation”是什么?
– 斐波那契数
– 背包问题
**第4章:数据结构**
– 数据结构和抽象数据类型(ADT)
– 数组
– 链表
– 堆栈
– 队列
– 二叉搜索树
– 优先级队列(堆)
– 关联数组(哈希表)
**第5章:图形**
– 有向图和无向图
– 图遍历:广度优先搜索和深度优先搜索
– 最短路径算法
– Dijkstra算法
– Bellman-Ford算法
**第6章:子串搜索算法**
– 最相关的子字符串搜索算法
– 简单子串搜索
– Knuth-Morris-Pratt (KMP) 子串搜索算法
– Rabin-Karp 算法
– Z 算法(线性模式匹配)
**第7章:排序**
– 稳定排序和自适应排序
– 基于比较和非基于比较的排序算法
– 字符串排序
– 冒泡排序
– 选择排序和插入排序
– 快速排序
– 合并排序
– 计数排序和基数排序
这些是课程将逐一讨论的主题。每个主题之后都有一个问答部分,您可以在其中测试对相关主题的理解。感谢您参加本课程,让我们开始学习!
**适合人群**:对算法和数据结构感兴趣的中级C++开发人员。
B站免费课程
更多 软件编程 教程




