From 16007b980831ec4cd9221e4bcfdeed2d903197e5 Mon Sep 17 00:00:00 2001 From: Divide-et-impera-11 <54957167+Divide-et-impera-11@users.noreply.github.com> Date: Sat, 30 Nov 2019 21:32:32 +0100 Subject: [PATCH] Update exponential_search.cpp --- Search/exponential_search.cpp | 29 ----------------------------- 1 file changed, 29 deletions(-) diff --git a/Search/exponential_search.cpp b/Search/exponential_search.cpp index f5302eee0..0684bc602 100644 --- a/Search/exponential_search.cpp +++ b/Search/exponential_search.cpp @@ -1,35 +1,6 @@ // copyright 2020 divide-et-impera-11 -#include #include #include -using namespaces std; -template inline type* binary_s(type *array, size_t size, type key) { -int32_t lower_index(0), upper_index(size - 1), middle_index; -while (lower_index <= upper_index) { - middle_index = floor((lower_index + upper_index) / 2); - if (*(array + middle_index) < key) lower_index = (middle_index + 1); - else if (*(array + middle_index) > key)upper_index = (middle_index - 1); - else return (array + middle_index); - } -return nullptr; -} -template type* struzik_search(type* array, size_t size, type key) { - uint32_t block_front(0), block_size = size == 0 ? 0 : 1; - while (block_front != block_size) { - if (*(array + block_size - 1) < key) { - block_front = block_size; - (block_size * 2 - 1 < size) ? (block_size *= 2) : block_size = size; - continue; - } - return binary_s(array + block_front, (block_size - block_front), key); - } -return nullptr; -} int main() { -int *sorted_array = new int[7]{7, 10, 15, 23, 70, 105, 203}; -assert(struzik_search(sorted_array, 7, 0) == nullptr); -assert(struzik_search(sorted_array, 7, 1000) == nullptr); -assert(struzik_search(sorted_array, 7, 50) == nullptr); -assert(struzik_search(sorted_array, 7, 7) == sorted_array); return 0; }