diff --git a/ex02/PmergeMe.cpp b/ex02/PmergeMe.cpp index dab0521..6d064e7 100644 --- a/ex02/PmergeMe.cpp +++ b/ex02/PmergeMe.cpp @@ -6,7 +6,7 @@ /* By: adjoly +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2025/06/04 13:28:23 by adjoly #+# #+# */ -/* Updated: 2025/06/04 14:05:14 by adjoly ### ########.fr */ +/* Updated: 2025/07/03 20:52:56 by adjoly ### ########.fr */ /* */ /* ************************************************************************** */ @@ -43,7 +43,6 @@ template void printContainer(const Container &container) { std::cout << std::endl; } -// Measure time and run sorting for vector and deque void sortAndTime(std::vector &vec, std::deque &deq) { auto vecStart = std::clock(); _fordJohnsonSort(vec); @@ -72,7 +71,6 @@ std::vector _generateJacobsthalOrder(size_t n) { std::vector sequence; std::vector inserted(n, false); - // Generate the sequence size_t j0 = 0, j1 = 1; while (j1 < n) { sequence.push_back(j1); @@ -117,10 +115,12 @@ template void _fordJohnsonSort(Container &container) { _fordJohnsonSort(mainChain); - std::vector order = _generateJacobsthalOrder(pendingElements.size()); + std::vector order = + _generateJacobsthalOrder(pendingElements.size()); for (size_t i = 0; i < order.size(); ++i) { _binaryInsert(mainChain, pendingElements[order[i]]); } + container = mainChain; } @@ -136,5 +136,6 @@ template void _binaryInsert(Container &sorted, int value) { itH = itMid; } - sorted.insert(itL, value); + if (itL == sorted.end() || *itL != value) + sorted.insert(itL, value); }