六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 84|回复: 0

全排列递归算法

[复制链接]

升级  13.33%

20

主题

20

主题

20

主题

秀才

Rank: 2

积分
70
 楼主| 发表于 2012-12-10 13:07:23 | 显示全部楼层 |阅读模式
全排列递归算法

    <div class="postText"><div id="cnblogs_post_body"><ul>算法原理

如果用P表示n个元素的全排列,而Pi表示n个元素中不包含元素i的全排列,(i)Pi表示在排列Pi前面加上前缀i的排列,那么n个元素的全排列可递归定义为:
① 如果n=1,则排列P只有一个元素i;
② 如果n>1,则全排列P由排列(i)Pi构成;
根据定义,可以看出如果已经生成(k-1)个元素的排列Pi,那么k个元素的排列可以在每个Pi前面加上元素i而生成。
代码实现

<div class="cnblogs_code">function rank($base, $temp=null){    $len = strlen($base);    if($len <= 1)    {        echo $temp.$base.'<br/>';    }    else    {        for($i=0; $i< $len; ++$i)        {            rank(substr($base, 0, $i).substr($base, $i+1, $len-$i-1), $temp.$base[$i]);        }    }}rank('123');
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表