【C言語】 再帰関数を使った最大値と最小値の求め方(データの数が2のべき乗限定)

データを配列に入れてbox=[1,2,3,・・・]として最大値を求めるプログラムを作成する。

1.データ数が1のとき、box[0]が最大値となる
2.データ数が2のとき、box[0]をグループ1としbox[1]をグループ2として、グループ1の最大値とグループ2の最大値を比較し
大きい方がデータの最大値となる。
3.データ数が4のとき box[0]~box[1]をグループ1としbox[2]~box[3]をグループ2としてグループ1の最大値とグループ2の最大値を比較し
大きい方がデータの最大値となる。
4.データ数が8のとき、box[0]~box[3]をグループ1としbox[4]~box[7]をグループ2としてグループ1の最大値とグループ2の最大値を比較し
大きい方がデータの最大値となる。
5.データ数が16のとき、box[0]~box[7]をグループ1としbox[8]~box[16]をグループ2としてグループ1の最大値とグループ2の最大値を比較し
大きい方がデータの最大値となる。
6.データ数が32のとき、box[0]~box[15]をグループ1としbox[16]~box[32]をグループ2としてグループ1の最大値とグループ2の最大値を比較し
大きい方がデータの最大値となる。

このようにn(データが2のべき乗)のときbox[[0]~box[(n/2)-1]をグループ1としbox[n/2]~box[n-1]をグループ2

としてグループ1の最大値とグループ2の最大値を比較し
大きい方がデータの最大値となる。

最小値も同様な考え方でできる。

続きを読む

【C言語】再帰関数を使った最大値と最小値の求め方(データの数が何個でもOK)

データを配列に入れてbox=[1,2,3,・・・n]として最小値を求めるプログラムを作成する。

1.データ数が1のとき、box[0]が最小値となる
2.データ数が2のとき、box[0]をグループ1としbox[1]をグループ2として、グループ1の最小値とグループ2の最小値を比較し小さい方がデータの最小値となる。
3.データ数が3のとき、box[0]をグループ1としbox[1]~box[2]をグループ2として、グループ1の最小値とグループ2の最小値を比較し
小さい方がデータの最小値となる。
4.データ数が4のとき、box[0]をグループ1としbox[1]~box[3]をグループ2として、グループ1の最小値とグループ2の最小値を比較し
小さい方がデータの最小値となる。
5.データ数が5のとき、box[0]をグループ1としbox[1]~box[4]をグループ2として、グループ1の最小値とグループ2の最小値を比較し
小さい方がデータの最小値となる。
6.データ数が6のとき、box[0]をグループ1としbox[1]~box[5]をグループ2として、グループ1の最小値とグループ2の最小値を比較し
小さい方がデータの最小値となる。

このように要素数がnの整数配列の最小値は、一番左の要素box[0]をグループ1として
box[1]~box[n-1]のグループ2としてグループ1の最小値とグループ2の最小値を比較し
小さい方がデータの最小値となる。これによってデータ数が何個でも最小値を求められる。

同様にすると最大値も求められる。

続きを読む

JavaScript ファイル名(拡張子あり)からファイル名(拡張子なし)と拡張子に分割する(正規表現)

下記の通りに、正規表現を使用してファイル名から拡張子を取り除いたり、拡張子だけを取得します。
参考にしたwebサイトでは、拡張子取得時に.(コンマ)もキャプチャーされていたが、コンマは不要としか思えないから、非キャプチャーグループにして、拡張子取得時にコンマは取得しないようにした。
それから、ファイル名がなく、.(コンマ)+拡張子の文字列でも拡張子を取得できるように、(.+)でなく(.*)とした。

続きを読む