0010/* PBUBBLE 0020/* BUBBLE-SORT 0030/* Klaus-Peter Plog 0040/* 0050DEFINE DATA LOCAL 00601 #J(I2) 0070/*-------------------------------------------------- Array definition 00801 #SORT-ARRAY-COUNT(I2) INIT <200> 00901 #SORT-ARRAY(I2/200) 0100/*------------------------------------------------ Variables for Sort 01101 #SWAP(L) 01201 #BUBBLE-END(I2) 01301 #I(I2) 01401 #HELP(I2) 0150END-DEFINE 0160/*--------------------------------------------- Fill array upside down 0170FOR #J = 1 TO 200 0180 COMPUTE #SORT-ARRAY(#J) = 200 - #J 0190END-FOR 0200WRITE #SORT-ARRAY(1:20) 0210PERFORM BUBBLE 0220WRITE #SORT-ARRAY(1:20) 0230/* 0240DEFINE SUBROUTINE BUBBLE /*=========================================== 0250ASSIGN #SWAP = TRUE 0260COMPUTE #BUBBLE-END = #SORT-ARRAY-COUNT - 1 0270REPEAT WHILE #SWAP AND #BUBBLE-END > 0 0280 RESET #SWAP 0290 FOR #I = 1 TO #BUBBLE-END 0300 IF #SORT-ARRAY(#I) > #SORT-ARRAY(#I + 1) 0310 ASSIGN #SWAP = TRUE 0320 ASSIGN #HELP = #SORT-ARRAY(#I) 0330 ASSIGN #SORT-ARRAY(#I) = #SORT-ARRAY(#I + 1) 0340 ASSIGN #SORT-ARRAY(#I + 1) = #HELP 0350 END-IF 0360 END-FOR 0370 COMPUTE #BUBBLE-END = #BUBBLE-END - 1 0380END-REPEAT 0390END-SUBROUTINE /*===================================================== 0400END