I wrote code in C++ in visual studios to try and implement mergesort. Whenever I try to compile it gives the same error, C3681 'merge' identifier not found, which I don't understand what exactly is not being identified. Please help!
#include <iostream>
#include <limits.h>
using namespace std;
void mergeSort(int A[], int p, int r) {
int q;
if (p < r) {
q = p + (r - 1) / 2;
mergeSort(A, p, q);
mergeSort(A, q + 1, r);
merge(A, p, q, r);
}
}
void merge(int array[], int p, int q, int r) {
int a, b, c;
int m = q - p + 1;
int n = r - q;
int* left_array = new int[m + 1];
int* right_array = new int[n + 1];
for (int i = 0; i < m; i++) {
left_array[i] = array[p + 1];
}
for (int j = 0; j < n; j++) {
right_array[j] = array[q + 1 + j];
}
left_array[m + 1] = INT_MAX;
right_array[n + 1] = INT_MAX;
a = 0;
b = 0;
c = 1;
while (a < m && b < n) {
if (left_array[a] <= right_array[b]) {
array[c] = left_array[a];
a++;
}
else {
array[c] = right_array[b];
b++;
}
c++;
}
while (a < m) {
array[c] = left_array[a];
a++;
c++;
}
while (b < n) {
array[c] = left_array[b];
b++;
c++;
}
}
}
int main(int argc, char* argv[]) {
int A[10] = { 9,8,7,6,5,4,3,2,1,0 };
mergeSort(A, 0, 9);
}