From dcdc9fa2c737febbc90326f4ca11f3908bc373e7 Mon Sep 17 00:00:00 2001 From: Mart Lubbers Date: Tue, 7 Dec 2021 09:17:42 +0100 Subject: [PATCH] improve with binary search --- 07a.c | 28 ++++++++++++++++++++-------- 07b.c | 35 ++++++++++++++++++++++------------- 2 files changed, 42 insertions(+), 21 deletions(-) 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); } -- 2.20.1