JAYLEE900 2022-08-23 22:00 采纳率: 33.3%
浏览 89
已结题

c++的递归+回溯算法代码的逻辑描述

下面的递归+回溯算法代码的逻辑看不明白,麻烦详细说明一下逻辑,要求每行代码目标表达明确,最好同时使用文字描述一遍,感谢

#include <iostream>
#include <vector>
using namespace std;

vector<int> datas = { 1,2,3,4,5 };
vector<vector<int>> records;

void permutation(int position, int length, vector<int>& tmp)
{
    if (length == 0)
    {
        records.push_back(tmp);
        return;
    }
    for (int i = position;i < datas.size();i++)
    {
        tmp.push_back(datas[i]);
        permutation(i + 1, length - 1, tmp);
        tmp.pop_back();
    }
}

int main()
{
    vector<int> tmp;
    for (int i = 1;i < datas.size();i++)
    {
        permutation(0, i, tmp);
    }

    return 0;
}

  • 写回答

7条回答 默认 最新

  • 玉古云投 2022-08-24 07:10
    关注
    获得2.55元问题酬金

    单步调试
    在算法函数这儿打断点,单步调试,观察每个变量值的变化情况,可以更深刻地理解代码逻辑。

    评论

报告相同问题?

问题事件

  • 系统已结题 8月31日
  • 创建了问题 8月23日