https://www.coursera.org/learn/algorithms-part1/
- 网络中:动态连通性
- 图处理:Kruskal最小生成树算法
- 渗滤模型(渗透概率p曲线非常陡峭)->蒙特卡罗仿真
- 构造花费O(n)
- 合并花费O(n) 开销太大
- 查找花费O(1)
- 构造花费O(n)
- 合并花费O(n) 包含查找根的花销
- 查找花费O(n) 开销太大
- 构造花费O(n)
- 合并花费O(lg(n)) 包含查找根的花销
- 查找花费O(lg(n))
- 构造花费O(n)
可能有问题?- 合并花费O(lg(n)) 包含查找根的花销
- 查找花费O(lg(n))
- tinyUF.txt
- mediumUF.txt
- largeUF.txt
- 求解开销O(n³)
- 求解开销O(n²lg(n))
- 1Kints.txt
- 2Kints.txt
- 4ints.txt
- 8Kints.txt
- 16Kints.txt
- 32Kints.txt
- 1Mints.txt
- 递归
- 总能显式的使用栈将递归程序非递归化
- 栈式编程语言
- Dijkstra双栈算术表达式求值算法
- 双栈:数值栈和操作符栈
- 使用静态嵌套类的链表构成的栈
- 使用可调整大小的数组构成的栈
- 使用静态嵌套类的链表构成的队列
- 使用可调整大小的数组构成的队列
- 使用静态嵌套类的链表构成的多集
- 没有删除功能
- 使用可调整大小的数组构成的多集
- 没有删除功能
- tobe.txt
- 想要保证每个操作都能很快完成,选用链表(数组分配时会消耗大量时间,变的很慢)
- 只关心总时间选用数组(将调整数组大小的开销平摊,仍比链表开销要小)
- 是不稳定的
- 不适合对大型数据进行排序
- 时间复杂度O(n²)
- 空间复杂度Θ(1)
- 每一轮交换只交换当前元素一次(直接放在有序子序列的最终位置中)
- 不适合对大型数据进行排序
- 时间复杂度O(n²)(平均情况比选择排序要快)
- 空间复杂度Θ(1)
- 不稳定
- 插入排序的改进
- 增量序列为3n+1
- 时间复杂度Θ(n^1.5)
- 空间复杂度Θ(1)
- tiny.txt
- words3.txt