[技术讨论] 帮提供个优化的算法

[复制链接]
3142|4
 楼主| kaavie 发表于 2021-6-29 21:10 | 显示全部楼层 |阅读模式
请教下高手一个算法
程序如下:
main()
{
程序0
程序1
程序2
程序3

程序1
程序2
程序3
程序0

程序2
程序3
程序0
程序1

程序3
程序0
程序1
程序2
}
求优化的算法,万分感谢
jackrich 发表于 2021-6-30 08:19 | 显示全部楼层
用函数指针查表,比较简洁。
LcwSwust 发表于 2021-6-30 08:24 | 显示全部楼层
本帖最后由 LcwSwust 于 2021-6-30 08:26 编辑

楼上的方法不错
或写个函数,传递一个参数:
void fun(int id)
{

switch(id){
case 0:fun0();break;
case 1:fun1();break;
......
}
}

然后调用它:
fun(0);
fun(1);
ayb_ice 发表于 2021-6-30 08:56 | 显示全部楼层
本帖最后由 ayb_ice 于 2021-6-30 09:00 编辑

起点从0开始,然后+1循环
0 123
1 230
2 301
3 012

0->1->2->3->0....


        u8 index = 0;
        while (1)
        {
                for (u8 i=0; i<4; i++)
                {
                        u8 k = index + i;
                        if (k >= 4)
                        {
                                k = 0;
                        }
                        call_func(k)
                }
                if (++index >= 4)
                {
                        index = 0;
                }
        }
waaini 发表于 2021-6-30 09:36 | 显示全部楼层
循环链表加指针嫌麻烦可以像上面那样直接建一个函数指针图表,用的时候查表
您需要登录后才可以回帖 登录 | 注册

本版积分规则

19

主题

124

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部