- 構文
- oddEvenSort( Var array[] )
- 引数
- array
- ソートする数値を格納した配列。参照引数。
- 戻値
プログラム
//////////////////////////////////////////////////
// 【引数】
// array : ソートする数値を格納した配列。参照引数。
// 【戻値】
//
//////////////////////////////////////////////////
PROCEDURE oddEvenSort(Var array[])
REPEAT
DIM flg = FALSE
FOR i = 0 TO UBound(array) STEP 2
IFB array[i] > array[i+1] THEN
swap(array[i], array[i+1])
flg = TRUE
ENDIF
NEXT
FOR i = 1 TO UBound(array) - 1 STEP 2
IFB array[i] > array[i+1] THEN
swap(array[i], array[i+1])
flg = TRUE
ENDIF
NEXT
UNTIL !flg
FEND
//////////////////////////////////////////////////
// 【引数】
// a : 変数bと交換する値。参照引数。
// b : 変数aと交換する値。参照引数。
// 【戻値】
//
//////////////////////////////////////////////////
PROCEDURE swap(Var a, Var b)
DIM tmp = a
a = b
b = tmp
FEND
//////////////////////////////////////////////////
// 【引数】
// 配列 : 上限値を求める配列
// 【戻値】
// 配列の上限値
//////////////////////////////////////////////////
FUNCTION UBound(array[])
RESULT = RESIZE(array)
FEND
この記事は役に立ちましたか?