Identify what algorithm or concept the following code relates to. void Sort(int array[], int tempArray[], int left, int right) { int i, j, k, middle; if(right > left) { middle = (right + left) /2; Sort(array, tempArray, left, middle); Sort(array, tempArray, middle + 1, right); for (i = middle + 1; i > left; --i) tempArray[i-1] = array[i-1]; for(j = middle; j < right; ++j) tempArray[right + middle-j] = array[j+1]; if (tempArray[i]