19 lines
415 B
Plaintext
19 lines
415 B
Plaintext
splitter() {
|
|
a=$1; s=$2; l=$3; r=$4;
|
|
mid=$(expr ${#a[*]} / 2);
|
|
echo $s ${a[*]:0:$mid} > $l
|
|
echo $(($mid + $s)) ${a[*]:$mid} > $r
|
|
}
|
|
|
|
bsearch() {
|
|
(to=$1; read s arr; a=($arr);
|
|
test ${#a[*]} -gt 1 && (splitter $a $s >(bsearch $to) >(bsearch $to)) || (test "$a" -eq "$to" && echo $a at $s)
|
|
)
|
|
}
|
|
|
|
binsearch() {
|
|
(read arr; echo "0 $arr" | bsearch $1)
|
|
}
|
|
|
|
echo "1 2 3 4 6 7 8 9" | binsearch 6
|