diff options
Autocommit at 02.05.2022 @ 21:20
1 files changed, 8 insertions, 8 deletions
| -rw-r--r-- | src/OrderedList/OrderedList.cpp | 16 |
diff --git a/src/OrderedList/OrderedList.cpp b/src/OrderedList/OrderedList.cpp index c16eaf3..f3a7450 100644 --- a/src/OrderedList/OrderedList.cpp +++ b/src/OrderedList/OrderedList.cpp @@ -1,12 +1,12 @@ #include "OrderedList.h" -bool OrderedList::insert(const T& element) { - if (length == count) resize(); +template <class T> +bool OrderedList<T>::insert(const T& element) { + if (List<T>::length == List<T>::count) List<T>::resize(); - unsigned l = 0, r = count - 1, m = l / 2 + r / 2; - while (l < r) { - if (elements[m].compare(element) > 0) r = m; - else if (elements[m].compare(element) < 0) l = m; - m = l / 2 + r / 2; - } + unsigned insertionInd = 0; + while (List<T>::elements[insertionInd].compare(element) < 0 && insertionInd < List<T>::count) + insertionInd++; + + return List<T>::insertAt(element, insertionInd); } |
