我不是真的进入基础算法编程,所以这是我的问题。我想创建一个可以填充循环缓冲区的算法,但它必须从缓冲区的末尾开始。我试图这么做几个小时没有成功,所以我请求你的帮助。
我知道从缓冲区开始的原始算法: i =(i + 1)%buffLen
但是我想要一些从buffLen-1到0的东西,当它达到0时,它从buffLen-1开始。
我知道这可以通过一个条件来完成,但我确信有一个公式可以更快更清洁。
我需要它在最后通过一组对象无限地迭代。
抱歉我的英语不好。
答案 0 :(得分:3)
尝试
i = (i + buffLen - 1) % buffLen;
它不会比if..else
构造更有效(或者甚至效率更高),但它是向正向移动的单行分配的模拟。