【Coursera】SeamCarver算法

来源:互联网 发布:专家系统原理与编程 编辑:程序博客网 时间:2024/06/10 00:55

Coursera 上 Algorithms,Part II, week 2的作业。

 

代码在这边:https://github.com/OldDream/Algorithms-6th-Sedgewick/tree/working_branch/src/seamCarver

还有两个点待优化:

1.在删除seam之后,更新energyMatrix的算法还有优化空间。只需重新计算seam和seam左侧的pixel对应的energy即可,其余可直接复制。

2.findHorizontalSeam()的时候对energyMatrix做了一次矩阵转置,其实可以写专用的算法,省掉这次转置。颠倒下AcyclicSPForMatrix里面的坐标就行。

 

手动进行“数据结构可视化”还是很有用的,省脑子。

有些地方,可以先用低效率算法实现,整个程序跑起来之后再换算法。比如AcyclicSPForMatrix.getToplogicalOrder()