第1章 算法基础知识
-
算法入门概念
-
估计算法运行效率与时间复杂度
-
简单判断时间复杂度
-
空间复杂度
-
递归
-
汉诺塔问题
第2章 常用查找与排序算法
-
顺序查找
-
二分查找介绍
-
二分查找代码
-
二分查找与线性查找的比较
-
排序介绍
-
冒泡排序介绍
-
冒泡排序
-
选择排序
-
插入排序
-
快速排序原理介绍
-
快速排序代码实现
-
快速排序代码实现2
-
堆排序前传树的基础知识
-
堆排序前传二叉树的基础知识
-
堆排序前传堆和堆的向下调整
-
堆排序的过程演示
-
向下调整函数的实现
-
堆排序的实现1
-
堆排序的实现2
-
堆排序的时间复杂度
-
堆的内置模块
-
topk问题
-
topk实现
-
归并排序归并
-
归并排序实现
-
归并排序复杂度讨论
-
NB三人组小结
-
希尔排序讨论
-
记数排序
-
桶排序介绍
-
桶排序实现
-
基数排序介绍
-
基数排序实现
-
查找排序部分习题1
-
查找排序部分习题2
-
查找排序部分习题3
-
查找排序部分习题4
第3章 常用数据结构
-
数据结构介绍
-
列表
-
栈的介绍
-
栈的应用:括号匹配问题
-
队列的介绍
-
队列的实现_batch
-
队列的内置模块
-
栈和队列的应用:迷宫问题
-
使用栈解决迷宫问题
-
使用队列进行迷宫问题:介绍
-
使用队列进行迷宫问题:实现
-
链表介绍
-
链表创建和遍历
-
双链表
-
链表总结
-
哈希表
-
哈希表的实现
-
哈希表应用
-
树的概念
-
树的实例:模拟文件系统
-
二叉树的概念
-
二叉树的遍历
-
二叉树的概念
-
二叉搜索树:插入
-
二叉搜索树:查询
-
二叉搜索树:删除
-
二叉搜索树:删除实现
-
AVL树的概念
-
AVL:旋转
-
AVL:旋转实现1
-
AVL:旋转实现2
-
AVL:插入
-
AVL:树应用与数据结构总结
第4章 算法进阶
-
贪心算法
-
分数背包
-
分数背包实现
-
数字拼接问题
-
数字拼接问题实现
-
活动选择问题
-
活动选择问题实现
-
贪心算法总结
-
动态规划介绍
-
钢条切割问题
-
钢条切割问题:自顶向下实现
-
钢条切割问题:自底向上实现
-
钢条切割问题:重构解
-
最长公共子序列
-
最长公共子序列实现
-
欧几里得算法
-
RSA算法介绍
-
RSA算法测试
-
算法课程总结
01-算法入门概念
1.1 算法是程序的灵魂;
02-估计算法运行效率与时间复杂度
03-简单判断时间复杂度
04-空间复杂度
05-递归
06-汉诺塔问题
汉诺塔函数;
def hanoi(n, a, b, c): if n > 0: hanoi(n - 1, a, c, b) print("从 %s 移动到 %s " % (a, c)) hanoi(n - 1, b, a, c) hanoi(13, "A", "B", "C")