[汇编][算法实战005]字符串全排列递归版
本帖最后由 老刘 于 2019-4-22 18:49 编辑例(52pj的全排列):52pj52jp5p2j5pj25jp25j2p25pj25jp2p5j2pj52jp52j5pp25jp2j5p52jp5j2pj52pj25j2p5j25pjp25jp52j5p2j52p。
以下代码是用递归求解的,分析文章网上一大堆,就不赘述了。
;Code BY 老刘
Include masm32rt.inc
.const
CrLf db 0DH,0AH,0
.data?
Input db 20 dup (?)
.code
recursion Proc Uses Ebx Eax Ecx lpStr:dword
Mov Ebx,lpStr
.If Byte Ptr != NULL
Mov Al,Byte Ptr
Xor Ecx,Ecx
.Repeat
XChg Al,
Mov Byte Ptr ,Al
Inc Ebx
Invoke recursion,Ebx
Dec Ebx
XChg Al,
Mov Byte Ptr ,Al
Inc Ecx
.Until Byte Ptr == NULL
.Else
Invoke StdOut,Offset Input
Invoke StdOut,Offset CrLf
.EndIf
Ret
recursion Endp
Start:
Invoke ArgClC,1,Offset Input
Invoke recursion,Offset Input
Invoke ExitProcess,NULL
End Start
End
同时欢迎大家分享自己的代码!
页:
[1]