配列の前半
配列をデータ置き場として複雑な処理をしたいとき、配列の一部分を扱う必要がある。
ひとつのデータは a[n] として参照できるので、関数に渡すときには
code: a.c
func(a, n);
のように配列全体 a と目標データの位置 n を引き渡せばよい
配列のある部分 a[l] ... a[r] は先頭 l と末尾 r の間として書けるのでプログラムでは
code: b.c
func(a, l, r);
のように引き渡す
l から r までの前半は l から (l+r)/2 までで、後半は (l+r)/2 + 1 から rまでで表せる
code: c.c
func(a, l, (l+r)/2); // lからrの左半分(前半)
func(a, (l+r)/2+1, r); // lからrの右半分(後半)