【题目描述】

给出一个n, 请输出n的所有全排列(按字典序输出)。

【样例输入】

3

【样例输出】

1 2 3

1 3 2

2 1 3

2 3 1

3 1 2

3 2 1

【解题思路】

听说C++有作弊器(求全排列的函数),羡慕不已啊……不过pascal也挺简单的,简单的递归回溯,我用了一个集合保证所有数字不重复,不知哪位神犇能给出更好的办法请写在评论处,谢谢!

【代码实现】

var n,w:longint;
a:array[..]of longint;
b:set of ..;//集合存储已用的数字
procedure try(m:longint);
var i:longint;
begin
if m=n then//一个排列生成,输出
begin
for i:= to n do
write(a[i],' ');
writeln;
end
else
for i:= to n do
if not (i in b) then
begin
inc(w);
a[w]:=i;
b:=b+[i];//存入a数组,方便输出,并标记
try(m+);//递归
b:=b-[i];
dec(w);//回溯
end;
end;
begin
readln(n);
try();
end.

全排列

最新文章

  1. IT励志与指导文章合集(链接)
  2. Laravel学习笔记(六)数据库 数据库填充
  3. vs.net 2005 C# WinForm GroupBOX 的BUG?尝试读取或写入受保护的内存。这通常指示其他内存已损坏
  4. Edmond_Karp算法
  5. Knockout.Js官网学习(click绑定)
  6. JS单例设计模式
  7. Android studio快捷键Mac版本
  8. 移动商城第四篇【Controller配置、添加品牌之文件上传和数据校验】
  9. LPCTSTR LPCWSTR LPCSTR 含义
  10. SSH上一个随笔的基础上添加上hibernate支持
  11. (二)surging 微服务框架使用系列之surging 的准备工作consul安装
  12. jdk安装及配置
  13. Python3的string库模板的应用
  14. js语言精粹
  15. collection.Counter
  16. Awk基础
  17. laravel 5.5 在构造函数使用Session
  18. PHP任意文件上传漏洞CVE-2015-2348浅析
  19. 音乐播放插件Aplayer+WebAPI的使用【附下载】
  20. git 命令02

热门文章

  1. java模拟用户登录(排除没有验证码情况下,抓取网页信息)
  2. 共享池之六:shared pool latch/ library cache latch /lock pin 简介
  3. 十步让你调试mvc源码
  4. WebsitePanel 2.1.0beta配置部分
  5. 使用AS3.0代码实现给图片添加滤镜的模糊与斜角效果
  6. JavaScript DOM编程艺术学习笔记(一)
  7. BZOJ1051 受欢迎的牛
  8. 使用HTTP协下载文件
  9. mac下的一些常识
  10. Loadrunner:集合点(Rendezvous)