全排列(深度优先搜索)
来源:互联网 发布:java如何停止一个线程 编辑:程序博客网 时间:2024/04/27 16:52
Description
列出所有数字1到数字n的连续自然数的排列,要求所产生的任一数字序列中不允许出现得复数字。
Input
输入:n(1<=n<=9)
Output
由1~n组成的所有不重复的数字序列,每行一个序列。
Sample Input
3
Sample Output
1 2 3
1 3 2
2 1 3
2 3 1
3 1 2
3 2 1
解题思路:读入n,然后开始用搜索,结束条件为s>n,输出该组数据并退出,如果dep>n则直接退出。从1到n循环,把x[s]赋值为i,如果g[i]等于0则开始递归,并回溯。
程序:
var
n,m:longint;
x,g:array[0..10] of longint;
procedure try(dep,s:longint);
var
i:longint;
begin
if s>n then
begin
for i:=1 to n do
write(x[i],' ');
writeln;
exit;
end;
if dep>n then exit;
for i:=1 to n do
begin
x[s]:=i;
if g[i]=0 then
begin
g[i]:=1;
try(dep+1,s+1);
g[i]:=0;
end;
x[s]:=0;
end;
end;
begin
readln(n);
try(0,1);
end.
0 1
- 全排列(深度优先搜索)
- 全排列(深度优先搜索)
- 深度优先搜索---全排列
- 全排列--深度优先搜索
- 全排列(深度优先搜索非递归实现)
- 全排列实现(递归实现深度优先搜索)
- 深度优先搜索与全排列
- 深度优先搜索之全排列
- 深度优先搜索求数的全排列
- 基于深度优先搜索的全排列实现方法
- 深度优先搜索———全排列
- leetcode 90. Subsets II DFS深度优先搜索 + 全排列
- 深度优先-Leetcode46 全排列
- 全排列 dfs(深度搜索)
- 搜索。深搜学习。深度优先搜索之数字全排列。nyoj,组合数
- 字典序排列- STL next_permutation、DFS(深度优先搜索)
- 深度优先算法--打印数组全排列
- 深度优先搜索dfs之1到n的全排列
- 计算问题(栈)
- ACM程序设计选修课——1076汇编语言(重定向+模拟)
- 括弧匹配检验(栈)
- 装载问题(深度优先搜索)
- 自然数的拆分(深度优先搜索)
- 全排列(深度优先搜索)
- 车厢调度(栈)
- 奇怪的电梯(广度优先搜索)
- 电子老鼠闯迷宫(广度优先搜索)
- 骑士旅行(广度优先搜索)
- 最优乘车(广度优先搜索)
- 建先进先出的链表(指针变量及线性…
- 删数问题(指针变量与线性链表)
- 【脚本化文档】——属性&元素的内容