void chang(char str[],int m) /*定義循環(huán)左移函數(shù)(我沒有用左移函數(shù))*/
成都創(chuàng)新互聯(lián)長期為成百上千家客戶提供的網(wǎng)站建設(shè)服務(wù),團隊從業(yè)經(jīng)驗10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為黃岡企業(yè)提供專業(yè)的成都做網(wǎng)站、成都網(wǎng)站建設(shè),黃岡網(wǎng)站改版等技術(shù)服務(wù)。擁有十載豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。
{
int i,j;
char temp=str[0];
for (i=0;im;i++) str[i]=str[i+1];
str[i]=temp;
}
void pai(char str[],int m,int n) /*定義全排列函數(shù)*/
{
int k;
void chang(char str[],int m);
if (mn) /* 定 義 遞 歸 調(diào) 用 出 口 */
{
for (k=0;k=m;k++)
{
pai(str,m+1,n); /*遞歸調(diào)用*/
chang(str,m); /*調(diào)用左移函數(shù)*/
}
}
else printf("%s\t",str);
}
#include "stdio.h"
main()
{char str[]="ABCD"; /*全排列字符,可以任意多個(相應(yīng)的下面排列函數(shù)中參數(shù)"4"改成全排列字符的個數(shù))*/
clrscr();
pai(str,0,4); /*這里參數(shù)0(下標)表示從第一個元素開始,4表示元素個數(shù)(不是下標)*/
getch();
}
可以輸出所有的排列,i和n表示排列的起始點和終止點比如說要排列"abcd"起點就是0,終點是3,perm(“abcd”,0,3)就可以了。
C語言中沒有吧?C++中倒是有一個:
next_permutation(array,array+arrlength)
使用的頭文件是#include algorithm
示例:
#include?iostream
#include?algorithm????///?next_permutation,?sort
using?namespace?std;
int?main?()?{
int?myints[]?=?{1,2,3,1};
sort?(myints,myints+4);
do?{
cout??myints[0]??'?'??myints[1]??'?'??myints[2]??'?'?myints[3]'\n';
}?while?(?next_permutation(myints,myints+4)?);????///獲取下一個較大字典序排列
cout??"After?loop:?"??myints[0]??'?'??myints[1]??'?'??myints[2]??'?'?myints[3]?'\n';
return?0;
}
perm(list,i,j)是一個全排列函數(shù),拿你上面的列子來說:
perm(list,0,5)意思是數(shù)組list的前6個數(shù)(第0個數(shù)到第5個數(shù))的所有排列,它細分的話就等于:第0個數(shù)和第1個數(shù)互換以后的perm(list,1,5) 第0數(shù)和第2數(shù)互換perm(list,1,5) ....第0數(shù)和第5數(shù)互換的perm(list,1,5) 和它本身的所在0位置的perm(list, 1, 5)
如假如6個數(shù)是1 2 3 4 5 6
他們的排列就 * * * * * * perm(list,0,5)
1 * * * * * perm(list,1,5)
2 * * * * * perm(list,1,5)
3 * * * * * perm(list,1,5)
4 * * * * * perm(list,1,5)
5 * * * * * perm(list,1,5)
6 * * * * * perm(list,1,5) 就是每一個數(shù)都在第0個位置上面都出現(xiàn)一次以后的排列總和。 也就是它的for循環(huán)的意思
這只是形象的比喻一下
名稱欄目:C語言中的全排列函數(shù)在哪,c語言選擇排序函數(shù)
標題網(wǎng)址:http://aaarwkj.com/article40/dsspieo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供小程序開發(fā)、全網(wǎng)營銷推廣、微信小程序、網(wǎng)站收錄、建站公司、外貿(mào)網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)