oddEvenSort

構文
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