新しく発言する  EXIT  インデックスへ
「並び替え」がつくるあみだくじ

  「並び替え」がつくるあみだくじ 山中和義 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


 インデックスへ  EXIT
新規発言を反映させるにはブラウザの更新ボタンを押してください。