激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務(wù)器之家:專(zhuān)注于服務(wù)器技術(shù)及軟件下載分享
分類(lèi)導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語(yǔ)言|JavaScript|易語(yǔ)言|vb.net|

服務(wù)器之家 - 編程語(yǔ)言 - PHP教程 - php全排列遞歸算法代碼

php全排列遞歸算法代碼

2020-01-13 16:11PHP教程網(wǎng) PHP教程

php全排列遞歸算法代碼,需要的朋友可以參考下

算法原理

如果用P表示n個(gè)元素的全排列,而Pi表示n個(gè)元素中不包含元素i的全排列,(i)Pi表示在排列Pi前面加上前綴i的排列,那么n個(gè)元素的全排列可遞歸定義為:
    ① 如果n=1,則排列P只有一個(gè)元素i;
    ② 如果n>1,則全排列P由排列(i)Pi構(gòu)成;
根據(jù)定義,可以看出如果已經(jīng)生成(k-1)個(gè)元素的排列Pi,那么k個(gè)元素的排列可以在每個(gè)Pi前面加上元素i而生成。
代碼實(shí)現(xiàn)

復(fù)制代碼代碼如下:


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');


不過(guò),經(jīng)多次測(cè)試運(yùn)行結(jié)果,發(fā)現(xiàn)存在一個(gè)問(wèn)題:若是存在相同的元素,則全排列有重復(fù)。
例如'122'的全排列只有三種情況:'122'、'212'、'221';上面方法卻有重復(fù)。
略修改,加個(gè)判斷重復(fù)的標(biāo)志,解決了問(wèn)題(代碼如下):

復(fù)制代碼代碼如下:


function fsRank($base, $temp=null)
{
    static $ret = array();
    $len = strlen($base);
    if($len <= 1)
    {
        //echo $temp.$base.'<br/>';
        $ret[] = $temp.$base;
    }
    else
    {
        for($i=0; $i< $len; ++$i)
        {
            $had_flag = false;
            for($j=0; $j<$i; ++$j)
            {
                if($base[$i] == $base[$j])
                {
                    $had_flag = true;
                    break;
                }
            }
            if($had_flag)
            {
                continue;
            }
            fsRank(substr($base, 0, $i).substr($base, $i+1, $len-$i-1), $temp.$base[$i]);
        }
    }
    return $ret;
}
print '<pre>';
print_r(fsRank('122'));
print '</pre>';

 

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25
主站蜘蛛池模板: av电影免费播放 | 亚洲91在线| 中文字幕www | 成人午夜免费国产 | 狠狠操视频网站 | 国产欧美在线一区二区三区 | teensexhd| 日产精品一区二区三区在线观看 | 国产在线观看 | 中国妞xxxhd露脸偷拍视频 | 国产精选电影免费在线观看 | 91成| 亚洲啪| 大号bbwassbigav头交 | 91成人在线免费 | 中文字幕在线观看免费 | 久久精品国产久精国产 | 正在播放91视频 | 国产亚洲黑人性受xxxx精品 | 免费在线性爱视频 | 中文字幕国 | 黄色网址进入 | 国产日本欧美在线观看 | 欧美aⅴ视频 | 免费黄色小视频网站 | 日本道中文字幕 | 毛片免费观看完整版 | www日韩在线 | 欧美人一级淫片a免费播放 久久久久久久久91 国产99久久久久久免费看 | 一区二区高清视频在线观看 | 欧美亚洲黄色 | av电影在线网 | 日本欧美一区二区三区在线播 | 国产一级免费电影 | 日本在线观看高清完整版 | 女18一级大黄毛片免费女人 | 国产精品亚洲精品久久 | 一级黄色影院 | 草妞视频 | 亚洲午夜免费电影 | 黄色片免费在线播放 |