void MergeSort2(vector< int >& vArr, int l, int u) { if (l < u) { int m = (l + u) / 2; MergeSort2(vArr, l, m); MergeSort2(vArr, m + 1, u); Merge2(vArr, l, m, u); } }
void ArraySorter::MergeSort2(int *arr, int i, int j) { if(i < j) { int k = (i + j)/2; MergeSort2(arr, i, k); MergeSort2(arr, k+1, j); Merge(arr, i, k, j); } }
int main() { int aArr[] = {10, 5, 2, 3, 1, 4, 7, 8, 9, 6}; //MergeSort(aArr, 0, 9); //copy(aArr, &aArr[10], ostream_iterator< int >(cout, " ")); vector< int > vArr(&aArr[0], &aArr[sizeof(aArr) / sizeof(int)]); MergeSort2(vArr, 0, vArr.size() - 1); copy(vArr.begin(), vArr.end(), ostream_iterator< int >(cout, " ")); return 0; }
void ArraySorter::MergeSort(int* arr, int n) { MergeSort2(arr, 0, n-1); }