Sollicitatievraag bij Amazon

How to merge 2 sorted array in to one sorted array

Antwoord op sollicitatievraag

Anoniem

6 jun 2012

pair merge_lists(int lhs[], int rhs[], size_t size1, size_t size2) { size_t newsize = size1 + size2; int* ans = new int[newsize]; int i = 0; int j = 0; int k = 0; while ( (i < size1) && (j < size2) ) { if (lhs[i] <= rhs[j]) { ans[k] = lhs[i]; i++; } else { ans[k] = rhs[j]; j++; } k++; } if (i < size1) { memcpy(&ans[k], &lhs[i], (size1 - i) * sizeof(int)); } else if (j < size2) { memcpy(&ans[k], &rhs[j], (size2 - j) * sizeof(int)); } return make_pair(ans, newsize); }