求职面试-算法复习系列
(1)递归算法:递归算法有两个关键点:(1)递归出口;(2)递归过程
void hanoi(int n, char one, char two, char three)
/* 将n个盘子从one 座借助two座, 移到three 座*/
{
if (n= =1)
move (one, three); //递归出口,如果递归出口不对,则会耗尽系统栈内存
else { //递归过程
hanoi(n-1, one, three, two); //第一步,将one上面的n-1个盘子,通过three移动到two
move(one, three); //第二步,将one上面的那个盘子直接移动到three上
hanoi(n-1, two, one, three); //第三步,将two上面的n-1个盘子,通过one移动到three上面
}
}
main()
{
int m;
printf(input the number of diskes:);
scanf(“%d”,&m);
printf(“The step to moving %3d diskes:\n”,m);
hanoi(m,’A’,’B’,’C’);
}
(2)贪心算法
(3)动态规划
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步