首页 > 编程语言 > 详细

【算法】深度优先搜索

时间:2019-03-12 22:14:29      阅读:160      评论:0      收藏:0      [点我收藏+]

深度优先搜索(DFS)是一种极其经典的算法,最好的理解例子是全排列问题。

现有数字 1~5,对他们进行全排列,共有几种排法?

#include<stdio.h>
int data[5]={1,2,3,4,5};
int perm[5]={0};
bool book[5]={false};

void dfs(int step)
{
    int i;
    if(step==5)
    {
        for(i=0;i<5;i++)
        {
            printf("%d ",perm[i]);
        }
        printf("\n");
        return;
    }
    for(i=0;i<5;i++)
    {
        if(!book[i])
        {
            book[i]=true;
            perm[step]=data[i];
            dfs(step+1);
            book[i]=false;
        }
    }
    return;
}
int main()
{
    dfs(0);
    
    
     
    return 0;
}

【算法】深度优先搜索

原文:https://www.cnblogs.com/yznnnn/p/10520020.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!