Permutations: Difference between revisions
Content added Content deleted
m (→{{header|Sidef}}: removed an unneeded semicolon) |
PatGarrett (talk | contribs) (→{{header|360 Assembly}}: Section added) |
||
Line 7: | Line 7: | ||
'''See Also:''' |
'''See Also:''' |
||
{{Template:Combinations and permutations}} |
{{Template:Combinations and permutations}} |
||
=={{header|360 Assembly}}== |
|||
{{trans|Liberty BASIC}} |
|||
<lang 360asm> |
|||
* Permutations 26/10/2015 |
|||
PERMUTEX CSECT |
|||
USING PERMUTEX,R15 set base register |
|||
LA R9,TMP-A n=hbound(a) |
|||
SR R10,R10 nn=0 |
|||
LOOPUI0 LA R10,1(R10) nn=nn+1 |
|||
LA R11,PG pgi=@pg |
|||
LA R6,1 i=1 |
|||
LOOPI1 CR R6,R9 do i=1 to n |
|||
BH ELOOPI1 |
|||
LR R1,R6 i |
|||
LA R2,A-1(R1) @a(i) |
|||
MVC 0(1,R11),0(R2) output a(i) |
|||
LA R11,1(R11) pgi=pgi+1 |
|||
LA R6,1(R6) i=i+1 |
|||
B LOOPI1 |
|||
ELOOPI1 XPRNT PG,80 |
|||
LR R6,R9 i=n |
|||
LOOPUIM BCTR R6,0 i=i-1 |
|||
C R6,=F'0' until i=0 |
|||
BE ELOOPUIM |
|||
LR R1,R6 i |
|||
LA R2,A-1(R1) @a(i) |
|||
LA R3,A(R1) @a(i+1) |
|||
CLC 0(1,R2),0(R3) or until a(i)<a(i+1) |
|||
BNL LOOPUIM |
|||
ELOOPUIM LR R7,R6 j=i |
|||
LA R7,1(R7) j=i+1 |
|||
LR R8,R9 k=n |
|||
LOOPWJ CR R7,R8 do while j<k |
|||
BNL ELOOPWJ |
|||
LA R2,A-1(R7) r2=@a(j) |
|||
LA R3,A-1(R8) r3=@a(k) |
|||
MVC TMP,0(R2) tmp=a(j) |
|||
MVC 0(1,R2),0(R3) a(j)=a(k) |
|||
MVC 0(1,R3),TMP a(k)=tmp |
|||
LA R7,1(R7) j=j+1 |
|||
BCTR R8,0 k=k-1 |
|||
B LOOPWJ |
|||
ELOOPWJ LTR R6,R6 if i>0 |
|||
BNP ILE0 |
|||
LR R7,R6 j=i |
|||
LA R7,1(R7) j=i+1 |
|||
LOOPWA LA R2,A-1(R7) @a(j) |
|||
LA R3,A-1(R6) @a(i) |
|||
CLC 0(1,R2),0(R3) do while a(j)<a(i) |
|||
BNL AJGEAI |
|||
LA R7,1(R7) j=j+1 |
|||
B LOOPWA |
|||
AJGEAI LA R2,A-1(R7) r2=@a(j) |
|||
LA R3,A-1(R6) r3=@a(i) |
|||
MVC TMP,0(R2) tmp=a(j) |
|||
MVC 0(1,R2),0(R3) a(j)=a(i) |
|||
MVC 0(1,R3),TMP a(i)=tmp |
|||
ILE0 C R6,=F'0' until i<>0 |
|||
BNE LOOPUI0 |
|||
XR R15,R15 set return code |
|||
BR R14 return to caller |
|||
A DC C'ABCD' |
|||
TMP DS C |
|||
PG DC CL80' ' |
|||
XD DS CL12 |
|||
YREGS |
|||
END PERMUTEX |
|||
</lang> |
|||
{{out}} |
|||
<pre style="height:40ex;overflow:scroll"> |
|||
ABCD |
|||
ABDC |
|||
ACBD |
|||
ACDB |
|||
ADBC |
|||
ADCB |
|||
BACD |
|||
BADC |
|||
BCAD |
|||
BCDA |
|||
BDAC |
|||
BDCA |
|||
CABD |
|||
CADB |
|||
CBAD |
|||
CBDA |
|||
CDAB |
|||
CDBA |
|||
DABC |
|||
DACB |
|||
DBAC |
|||
DBCA |
|||
DCAB |
|||
DCBA |
|||
</pre> |
|||
=={{header|ABAP}}== |
=={{header|ABAP}}== |
||
<lang ABAP>data: lv_flag type c, |
<lang ABAP>data: lv_flag type c, |