第4次冒泡结果:1、2、3、4、5、6、7 ;已完成排序 第5次冒泡结果:1、2、3、4、5、6、7 第6次冒泡结果:1、2、3、4、5、6、7 对于n个数,理论上应进行(n-1)次冒泡,有时不到(n-1)次就已完成排序 。 如何判定排序是否已完成,看各次冒泡中是否有互换发生,如果有数据互换,则排序还没完成。 在程序设计中,常使用设置互换标志的方法,该标志的状态表示在一次冒泡中是否有互换进行。 例4-10 一批单字节无符号数,以R0为首地址指针,R2中为字节数,将这批数进行升序排列。程序框图如图4-2所示。 SORT: MOV A,R0 ; MOV R1, A MOV A,R2 ;字节数送入R5 MOV R5, A CLR F0 DEC R5 ;互换标志位F0清零 ; MOV A,@R1 ; MOV R3, A ; INC R1 CLR C ; ; LOOP: MOV A,@R1 ;比较大小 SUBB A,R3 JNC LOOP1 SETB F0 ; ; ;互换标志位F0置1 MOV A,R3; ; XCH A,@R1 ;两个数互换 DEC R1 ; XCH A,@R1 ; INC R1
LOOP1: MOV A,@R1 DJNZ R5,LOOP JB F0,SORT RET
第四章汇编语言程序设计基础
第4次冒泡结果:1、2、3、4、5、6、7;已完成排序第5次冒泡结果:1、2、3、4、5、6、7第6次冒泡结果:1、2、3、4、5、6、7对于n个数,理论上应进行(n-1)次冒泡,有时不到(n-1)次就已完成排序。如何判定排序是否已完成,看各次冒泡中是否有互换发生,如果有数据互换,则排序还没完成。在程序设计中,常使用设置互换标志的方法,该标志的状态表示在一次
推荐度:
点击下载文档文档为doc格式