对数字进行直接选择排序、冒泡排序

来源:互联网 发布:万维网域名 编辑:程序博客网 时间:2024/05/21 17:13

描述:

对数字先用了直接选择排序从小到大进行了排序,然后用冒泡排序逆序从大到小排序,最后输出最大最小

代码:

DATA    SEGMENT        STR1    DB      0DH,0AH,'BEFORE SORT$'        STR2    DB      0DH,0AH,'DIRECT SORT L2B$'        STR3    DB      0DH,0AH,'BUBBLE SORT B2L$'        STR4    DB      0DH,0AH,'MIN$'        STR5    DB      0DH,0AH,'MAX$'        SCORE   DB      0,3,2,3,5,4,1,7,6,8,9,8,9        COUNT   EQU     $-SCOREDATA    ENDSCODE    SEGMENT        ASSUME  CS:CODE,DS:DATASTART:        MOV     AX,DATA        MOV     DS,AX        MOV     DX,OFFSET STR1        CALL    OUTPUT1        MOV     CX,COUNT        MOV     BX,OFFSET SCORECALL    OUTPUT2        MOV     CX,COUNT-1;直接选择排序开始        MOV     SI,OFFSET       SCORED1:        MOV     AL,[SI]        MOV     DI,SI        INC     DI        MOV     BX,CXD2:        CMP     AL,[DI]        JB      DNEXT        XCHG    AL,[DI]DNEXT:        INC     DI        DEC     BX        JNZ     D2MOV [SI],AL        INC     SI        LOOP    D1        MOV     DX,OFFSET STR2        CALL    OUTPUT1        MOV     CX,COUNT        MOV     BX,OFFSET SCORE        CALL    OUTPUT2             MOV CX,COUNT-1;冒泡排序B1:        MOV     SI,OFFSET SCORE        MOV     BX,CXB2:        MOV     AL,[SI]        CMP     AL,[SI+1]        JAE     BNEXT        XCHG    AL,[SI+1]        MOV     [SI],ALBNEXT:        INC     SI        DEC     BX        JNZ     B2        LOOP    B1        MOV     DX,OFFSET STR3        CALL    OUTPUT1        MOV     CX,COUNT        MOV     BX,OFFSET SCORE        CALL    OUTPUT2        MOV     DX,OFFSET STR4        CALL    OUTPUT1        MOV     CX,1        MOV     BX,OFFSET SCORE        ADD     BX,COUNT        CALL    OUTPUT2        MOV     DX,OFFSET STR5        CALL    OUTPUT1        MOV     CX,1        MOV     BX,OFFSET SCORE        CALL    OUTPUT2        MOV     AH,4CH        INT     21H        RET       OUTPUT1 PROC;输出字符串子过程        MOV     AH,9        INT     21HRETOUTPUT1 ENDPOUTPUT2 PROC;输出数字子过程        MOV     DL,0DH        MOV     AH,2        INT     21H        MOV     DL,0AH        MOV     AH,2        INT     21HOP2L1:        MOV     DL,[BX]        ADD     DL,30H        MOV     AH,2        INT     21H        INC     BX        MOV     DL,20H        MOV     AH,2        INT     21H        LOOP    OP2L1MOVAH,3RETOUTPUT2 ENDPCODE    ENDSEND     START


原创粉丝点击