@@ -30,7 +30,7 @@ bool PmergeMe::isValidNumber(const char *str)
3030 char *ptr;
3131 long num = strtol (str, &ptr, 10 );
3232
33- if (*ptr != ' \0 ' || num <= 0 || num > INT_MAX)
33+ if (*ptr != ' \0 ' || num < 0 || num > INT_MAX)
3434 return false ;
3535
3636 return true ;
@@ -73,8 +73,9 @@ std::vector<int> PmergeMe::getJacob(size_t size)
7373}
7474
7575
76- std::vector<int > PmergeMe::getInsertPos (std::vector< int > &jacobSeq, size_t size)
76+ std::vector<int > PmergeMe::getInsertPos (size_t size)
7777{
78+ std::vector<int > jacobSeq = getJacob (size);
7879 std::vector<int > order;
7980 std::vector<bool > used (size, false );
8081 used[0 ] = true ;
@@ -157,8 +158,7 @@ void PmergeMe::sortVector()
157158
158159 if (pendChain.size () > 1 )
159160 {
160- std::vector<int > jacobSeq = getJacob (pendChain.size ());
161- std::vector<int > insertionOrder = getInsertPos (jacobSeq, pendChain.size ());
161+ std::vector<int > insertionOrder = getInsertPos (pendChain.size ());
162162
163163 for (size_t i = 0 ; i < insertionOrder.size (); i++)
164164 {
@@ -234,8 +234,7 @@ void PmergeMe::sortDeque()
234234
235235 if (pendChain.size () > 1 )
236236 {
237- std::vector<int > jacobSeq = getJacob (pendChain.size ());
238- std::vector<int > insertionOrder = getInsertPos (jacobSeq, pendChain.size ());
237+ std::vector<int > insertionOrder = getInsertPos (pendChain.size ());
239238
240239 for (size_t i = 0 ; i < insertionOrder.size (); i++)
241240 {
@@ -272,6 +271,15 @@ void PmergeMe::sort()
272271 clock_t deqEnd = clock ();
273272 double deqTime = static_cast <double >(deqEnd - deqStart) / CLOCKS_PER_SEC * 1000000 ;
274273
274+ // for (size_t i = 1; i < _vec.size(); i++)
275+ // {
276+ // if (_vec[i] < _vec[i - 1])
277+ // {
278+ // std::cerr << "Error: std::vector is not sorted" << std::endl;
279+ // return;
280+ // }
281+ // }
282+
275283 printSeq (original, " Before" );
276284 printSeq (_vec, " After" );
277285
0 commit comments