
获得徽章 0
- 自学第一天 算法四初读
一:
背包,栈,队列这三种数据结构,有着比较相似的基础API,背包是一种不支持从中删除元素的集合数据类型,栈是后进先出的数据类型,队列是先进先出的数据类型。
主要有类似如下几种API,初始化空数据集合,添加元素,删除元素,为空判断,集合大小。
实现方式主要有数组,链表实现。
实现步骤有如下几步:定容集合大小,参数泛型,扩容,空对象处理,元素迭代。
实现难点主要在于注意对元素关系的维护。
二:
一个程序的运行时间往往取决于 运行环境,问题规模,算法的使用,而排除环境影响,控制相同的问题规模,算法则是我们在程序中可以进行优化的地方。
针对union-find算法,主要提供了三种实现方式,union-find类似于使用了数组的解决方式,而quick-union则是类似使用了链表的方式,至于加权quick-union则是类似使用了树的实现。最后还有一种最优解,使用路径压缩的加权quick-union的算法,这种我个人看来更类似一种用空间换时间的方式,去维护额外的关系来获取更优的效率。展开25