CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
花落谁家,你作主! 盛大widget设计大赛英雄榜
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  专题开发/技术/项目 >  数据结构与算法

排列的算法?不是组合的算法!!!请问

楼主happyno9(寒风中的烟头)2001-02-02 11:08:00 在 专题开发/技术/项目 / 数据结构与算法 提问

问题点数:20、回复次数:7Top

1 楼xzjxu(糊涂神仙)回复于 2001-02-02 11:09:00 得分 0

递归Top

2 楼ed9er(始祖鸟)回复于 2001-02-02 11:39:00 得分 0

还是用栈  
  Top

3 楼happyno9(寒风中的烟头)回复于 2001-02-02 11:41:00 得分 0

能详细说说吗?谢谢Top

4 楼happyno9(寒风中的烟头)回复于 2001-02-02 11:47:00 得分 0

各位大哥,详细点如何?  
  Top

5 楼friendkey(friendkey)回复于 2001-02-02 11:58:00 得分 20

这是我以前用PASCAL写的全排列的算法。  
  {用堆栈     }  
  uses   crt;  
  const   m0=20;{元素个数}  
  type  
    TStack=record  
      data:array[1..m0]of   integer;  
      p:integer;  
  end;  
   
  var   p:Tstack;  
   
  procedure   null(var   s:TStack);  
  begin  
  S.p:=0  
  end;  
   
  procedure   Push(var   s:TStack;Data:Integer);  
  begin  
  inc(s.p);  
  s.data[s.p]:=data;  
  end;  
   
  function   Pop(var   s:TStack):Integer;  
  begin  
  pop:=s.data[s.p];  
  dec(s.p)  
  end;  
   
  function   exist(s:TStack;n:integer):boolean;  
  var   i:integer;  
  begin  
  exist:=false;  
  for   i:=1   to   s.p   do  
    if   n=s.data[i]   then  
      begin  
        exist:=true;  
        exit;  
      end  
  end;  
   
  procedure   ShowStack(s:TStack);  
  var   i,m:integer;  
  begin  
  m:=s.p;  
  for   i:=1   to   m   do   write(s.data[i]);  
  write('   ')  
  end;  
   
  procedure   perm;  
  var   i:integer;flag:boolean;  
  begin  
  flag:=false;  
  for   i:=1   to   m0   do  
    begin  
      if   not   exist(p,i)   then  
        begin  
          push(p,i);  
          flag:=true;  
          perm;  
          pop(p)  
        end;{if}  
    end;{for}  
   
    if   not   flag   then   ShowStack(p);  
   
  end;  
   
   
  begin  
  clrscr;  
  perm;  
  end.Top

6 楼friendkey(friendkey)回复于 2001-02-02 12:01:00 得分 0

补充:实际上是用递归实现的回溯。Top

7 楼happyno9(寒风中的烟头)回复于 2001-02-02 12:49:00 得分 0

谢谢!!!我看看阿,不过,没有注释,这可不是一个好习惯哦,嘿嘿Top

相关问题

  • 求排列组合算法
  • n个球放a个不同篮子,排列组合的算法
  • 谁有排列组合的算法???急!!!
  • 排列组合的算法问题
  • 请教一个排列组合算法
  • 排列组合算法求解
  • 一个排列组合的算法
  • 算法问题!高分求一排列组合算法。(100分)
  • 求——排列组合中,求各种组合方式的——算法!!!
  • 【算法】从m个数中任取n个数的排列组合算法!

关键词

  • 算法
  • tstack
  • perm
  • integer
  • exist
  • procedure
  • flag
  • begin
  • var
  • then

得分解答快速导航

  • 帖主:happyno9
  • friendkey

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo