0
8086彙編語言程序對數組排序如下: 數組中的最小值應放置在第一個單元格中。 最後一個單元格中的第二小值。 陣列的第二個單元格中的第三小值。 排列在 陣列的倒數第一個單元格中的第四小值。 •上述過程一直持續到陣列完全排序。 注意的是,在上述分選技術,初始陣列 最終會在大的值被設置在所述陣列以特殊方式排序?請幫助?
這裏的中間部分是我的代碼它排序但在正常方式:
org 100h
.MODEL SMALL
.DATA
TABLE DB 9,2,6,8,5,1
B DB 6 DUP(0)
VAL1 DB 5
NL DB ' ','$'
.CODE
MOV AX,@DATA
MOV DS,AX
LEA BX,TABLE
MOV DL,VAL1
LBL1:
LEA BX,TABLE
MOV CL,5
LBL2:
MOV AL,[BX]
MOV DL,[BX+1]
CMP AL,DL
JB LBL3
MOV [BX],DL
MOV [BX+1],AL
LBL3:
INC BX
LOOP LBL2
MOV DL,VAL1
DEC DL
MOV VAL1,DL
CMP DL,00
JNE LBL1
MOV CL,6
LEA BX,TABLE
DISPLAY:
LEA DX,NL
MOV AH,09H
INT 21H
MOV DL,[BX]
ADD DL,30H
MOV AH,02H
INT 21H
INC BX
INC BX
LOOP DISPLAY
MOV AH,4CH
INT 21H
ret
與其試圖設計一種以這種方式工作的排序算法,我會推薦兩階段方法 - 1)以正常方式對列表進行排序,然後2)將排序列表重新排列爲所需的結構。嘗試在一個階段完成這兩項操作即使在更高級別的語言中也可能會遇到一些挑戰,並且很可能無法執行... – twalberg 2014-12-05 19:29:48