標籤:比較 pts scripts color ret 自動產生 har range exe
本人.net一名,最近在看資料結構與演算法分析,中間涉及的一些比較有意思的演算法題,打算用python實現以下。選擇python的原因,就是想熟悉一下python的文法,和pycharm基本的應用。
本篇,演算法為:列印數組的所有排列可能。廢話不多說,直接上代碼。
1 #自動產生list 2 def creataList(n): 3 numlist=[]; 4 for i in range(n): 5 numlist.append(i); 6 7 return numlist; 8 #copy list排除某一個元素 9 def copewithout(lst,index):10 newlst=[];11 for i in range(len(lst)):12 if(i==index):13 continue;14 newlst.append(lst[i]);15 return newlst;16 17 #列印所有排列18 def printallchildlist(numlist,index,printlist,length):19 if(index==length-1):20 printlist[index]=numlist[0];21 print(printlist);22 else:23 for i in range(len(numlist)):24 printlist[index]=numlist[i];25 newnumlst=copewithout(numlist,i);26 printallchildlist(newnumlst,index+1,printlist,length);27 #主函數28 def domain(num):29 numlst=creataList(num);30 printlst=creataList(num);31 printallchildlist(numlst,0,printlst,num);32 33 domain(3);
這是測試結果:
D:\Learning\Python\Test\venv\Scripts\python.exe D:/Learning/Python/Test/2.13.py[0, 1, 2][0, 2, 1][1, 0, 2][1, 2, 0][2, 0, 1][2, 1, 0]
列印數組所有排列 python