Question: Please fill in the code for GetSortedrunLength and NaturalMergerSort: class NaturalMergeSorter { public: virtual int GetSortedRunLength ( int * array, int arrayLength, int startIndex )
Please fill in the code for GetSortedrunLength and NaturalMergerSort: class NaturalMergeSorter
public:
virtual int GetSortedRunLengthint array, int arrayLength, int startIndex
TODO: Type your code here
return ;
virtual void NaturalMergeSortint array, int arrayLength
TODO: Type your code here
virtual void Mergeint numbers, int leftFirst, int leftLast,
int rightLast
int mergedSize rightLast leftFirst ;
int mergedNumbers new intmergedSize;
int mergePos ;
int leftPos leftFirst;
int rightPos leftLast ;
Add smallest element from left or right partition to merged numbers
while leftPos leftLast && rightPos rightLast
if numbersleftPos numbersrightPos
mergedNumbersmergePos numbersleftPos;
leftPos;
else
mergedNumbersmergePos numbersrightPos;
rightPos;
mergePos;
If left partition isn't empty, add remaining elements to mergedNumbers
while leftPos leftLast
mergedNumbersmergePos numbersleftPos;
leftPos;
mergePos;
If right partition isn't empty, add remaining elements to mergedNumbers
while rightPos rightLast
mergedNumbersmergePos numbersrightPos;
rightPos;
mergePos;
Copy merged numbers back to numbers
for mergePos ; mergePos mergedSize; mergePos
numbersleftFirst mergePos mergedNumbersmergePos;
Free temporary array
delete mergedNumbers;
;
#endif
Step by Step Solution
There are 3 Steps involved in it
1 Expert Approved Answer
Step: 1 Unlock
Question Has Been Solved by an Expert!
Get step-by-step solutions from verified subject matter experts
Step: 2 Unlock
Step: 3 Unlock
