「並び替え」がつくるあみだくじ 山中和義 2007/11/07 14:03:04 └つづき 山中和義 2007/11/07 14:03:37
Re: 「並び替え」がつくるあみだくじ |
返事を書く ノートメニュー |
山中和義 <drdlxujciw> 2007/11/07 14:03:37 | |
つづき
!隣接しない要素の交換 SUB Sort4(A()) !基本選択法 ※Tutorialフォルダ内ex43.bas参照 FOR i=1 TO UBOUND(A)-1 LET k=i !左端 FOR j=i+1 TO UBOUND(A) !最小の位置を見つける IF A(j)<A(k) THEN LET k=j NEXT j IF i<k THEN !交換が必要なら swap A(i),A(k) CALL ConnectLine(i,k) END IF NEXT i END SUB SUB Sort5(A(),L,R) !クイックソート ※Libraryフォルダ内sort1.lib参照 IF L<R THEN LET s=A(INT((L+R)/2)) !中央を軸にする LET i=L-1 !軸より小さいグループと大きいグループに分ける LET j=R+1 DO DO LET i=i+1 LOOP WHILE A(i)<s !軸以上の位置i DO LET j=j-1 LOOP WHILE A(j)>s !軸以下の位置j IF i>=j THEN EXIT DO swap A(i),A(j) CALL ConnectLine(i,j) LOOP CALL Sort5(A, L,i-1) !左部分 CALL Sort5(A, j+1,R) !右部分 END IF END SUB END |