关于ics lab8 performance中的smooth

本文探讨了avg算法的优化方案,重点介绍了如何通过避免不必要的循环来提高算法效率。文章提出了针对不同位置(角、边、中)的元素采取不同策略进行计算的方法,并给出了具体的线性访问矩阵操作技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

其实smooth比rotate水很多。


首先看一下avg的定义,发现是二层循环,最大遍历3*3最小遍历2*2的元素,用二层循环未免太不高效了。我们的任务就是把他展开。


展开时要注意边界,四个角的元素周围四个取平均,四条边上的要六个取平均,中间的元素才是九个取平均,我的建议是先算角再算边最后算中间。


运算的时候要直接按照线性结构访问矩阵,如果外层循环变量是i,内层是j,那么它实际的下标就应该是i*dim+j。其实为了避免反复运算那个乘法,大家可以新定义个变量每次递增dim。


设当前的下标为k的话,那么它周围的元素下标如下图:



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值