人力资源机器28关优化挑战解法--三数排序

size challenge
思路:三份存储保存输入,一份存储用来交换两数;若2比1小则交换,2比3小则交换,再来2比1小则交换,2比3小则交换;最后输出1、2、3

-- HUMAN RESOURCE MACHINE PROGRAM --

a:
   INBOX   
   COPYTO   0
   INBOX
   COPYTO   1
   INBOX
   COPYTO   2
b:
   COPYFROM 0
   SUB      1
   JUMPN    c
   JUMPZ    d
   COPYFROM 1
   COPYTO   5
   COPYFROM 0
   COPYTO   1
   COPYFROM 5
   COPYTO   0
c:
d:
   COPYFROM 1
   SUB      2
   JUMPN    e
   JUMPZ    f
   COPYFROM 2
   COPYTO   5
   COPYFROM 1
   COPYTO   2
   COPYFROM 5
   COPYTO   1
   JUMP     b
e:
f:
   COPYFROM 0
   OUTBOX
   COPYFROM 1
   OUTBOX
   COPYFROM 2
   OUTBOX
   JUMP     a

speed challenge

-- HUMAN RESOURCE MACHINE PROGRAM --

a:
b:
c:
d:
e:
f:
    INBOX   
    COPYTO   0
    INBOX   
    COPYTO   1
    SUB      0
    JUMPN    g
    JUMP     k
g:
    INBOX   
    COPYTO   2
    SUB      1
    JUMPN    h
    JUMP     i
h:
    ADD      1
    OUTBOX  
    COPYFROM 1
    OUTBOX  
    COPYFROM 0
    OUTBOX  
    JUMP     d
i:
    COPYFROM 1
    OUTBOX  
    COPYFROM 2
    SUB      0
    JUMPN    j
    COPYFROM 0
    OUTBOX  
    COPYFROM 2
    OUTBOX  
    JUMP     f
j:
    COPYFROM 2
    OUTBOX  
    COPYFROM 0
    OUTBOX  
    JUMP     e
k:
    INBOX   
    COPYTO   2
    SUB      1
    JUMPN    l
    COPYFROM 0
    OUTBOX  
    COPYFROM 1
    OUTBOX  
    COPYFROM 2
    OUTBOX  
    JUMP     c
l:
    ADD      1
    JUMPN    p
    SUB      0
    JUMPN    n
m:
    COPYFROM 0
    OUTBOX  
    COPYFROM 2
    OUTBOX  
    COPYFROM 1
    OUTBOX  
    JUMP     b
n:
o:
    ADD      0
    OUTBOX  
    COPYFROM 0
    OUTBOX  
    COPYFROM 1
    OUTBOX  
    JUMP     a
p:
    SUB      0
    JUMPN    o
    JUMP     m
posted @ 2019-07-21 16:47  Ray小七  阅读(1456)  评论(0)    收藏  举报