我正在编写一个归并排序函数,目前我只是使用了一个测试用例数组(没有输入 - 目前是静态的)。我不知道如何将数组作为参数传递。这是我的代码:
//merge sort first attempt
#include <iostream>
#include <algorithm>
#include <vector>
int mergeSort(int[]);
int main() {
int originalarray[] = { 1, 3, 5, 7, 9, 2, 4, 6, 8, 10 };
mergeSort(originalarray[]);
}
int mergeSort(int[] originalarray) {
int num = (sizeof(originalarray) / sizeof(int));
std::vector < int > original(num);
if (num > 2) {
return num;
}
// Fill the array using the elements of originalarray
// This is just for demonstration, normally original will be a parameter,
// so you won't be filling it up with anything.
std::copy(originalarray, originalarray + num, original.begin());
// Create farray and sarray of the appropriate size
std::vector < int > farray(num / 2);
std::vector < int > sarray(num - farray.size());
// Fill those using elements from original
std::copy(original.begin(), original.begin() + farray.size(), farray.begin());
std::copy(original.begin() + farray.size(), original.end(), sarray.begin());
mergeSort(farray);
mergeSort(sarray);
}
请注意,这个mergeSort函数目前还没有实现,因为我还没有弄清楚如何将它们合并(这是我的任务)。在处理这个问题之前,我希望先将我的两个向量排序,但由于需要将数组作为参数传递,所以我无法编译此代码。我不明白指针,所以如果这是解决方案,我的借口就是无知。我正在学习编程,用的是C++作为第一门语言,对这门语言的特性只有基本的了解。谢谢你的帮助。