From: Mart Lubbers Date: Tue, 7 Dec 2021 08:17:42 +0000 (+0100) Subject: improve with binary search X-Git-Url: https://git.martlubbers.net/?a=commitdiff_plain;h=dcdc9fa2c737febbc90326f4ca11f3908bc373e7;p=advent21.git improve with binary search --- diff --git a/07a.c b/07a.c index 8e3d256..92730a2 100644 --- a/07a.c +++ b/07a.c @@ -3,6 +3,14 @@ #include #include +static inline int distance(int crabs[], int ncrabs, int pos) +{ + int dist = 0; + for (int i = 0; i middledist) { + maxp = middle; + middle = (middle+minp)/2; + } else { + minp = middle; + middle = (middle+maxp)/2; + } } - printf("%d\n", mindist); + printf("%d\n", middledist); } diff --git a/07b.c b/07b.c index a711578..2d361dd 100644 --- a/07b.c +++ b/07b.c @@ -3,6 +3,16 @@ #include #include +static inline int distance(int crabs[], int ncrabs, int pos) +{ + int dist = 0; + for (int i = 0; i middledist) { + maxp = middle; + middle = (middle+minp)/2; + } else { + minp = middle; + middle = (middle+maxp)/2; } - i++; - } while (dist < lastdist); - printf("%d\n", lastdist); + } + printf("%d\n", middledist); }