#include <iostream>
using namespace std;
bool mergeSort(int arr[], int arrStart, int arrEnd){
int arrLen = arrEnd - arrStart;
if (arrLen == 1){
return true;
}
int mid = arrStart + arrLen/2;
mergeSort(arr, arrStart, mid);
mergeSort(arr, mid, arrEnd);
return merge(arr, arrStart, mid, arrEnd);
}
bool merge(int arr[], int arrStart, int arrMiddle, int arrEnd){
int arrLen = arrEnd - arrStart;
if(arrLen < 2){
return false;
}
int i = arrStart;
int j = addMiddle;
int *temp = new int(arrLen);
int tempIndex = 0;
while(i < arrMiddle && j < arrEnd){
if(array[i] > array[j]){
temp[tempIndex] = array[j];
++j;
}else{
temp[tempIndex] = array[i];
++i;
}
}
while(i < arrMiddle){
temp[tempIndex++] = array[i++];
}
while (j < arrEnd){
temp[tempIndex++] = array[j++];
}
for ((tempIndex = 0, i = arrStart); (tempIndex < arrLen && i < arrEnd); (++tempIndex, ++i)){
array[i] = temp[tempIndex];
}
delete []temp;
temp = NULL;
return true;
}
void printArray(int array[], int arrLen){
for (int i = 0; i < arrLen; ++i){
cout << array[i] << " ";
}
cout << endl;
}
int main() {
cout << "=========================" << endl;
return 0;
}