我试图用合并排序来解决这个问题,但是我的解决方案出了问题。我在合并数组时检查了反转次数。 有人可以帮我找到问题吗? void merge(int arr[], int l, int m, int r)
{
int n1=m-l+1;
int n2=r-m;
int left[(n1+1)];
int right[(n2+1)];
for(int
我想递归实现合并排序算法,只通过向函数传递矢量值(无左或右索引)。以下代码中的while循环在将要排序的列表作为指针void merge_sort_array(int* v, int l, int r)或引用void merge_sort_ref(vector<int>& v, int l, int r)进行传递时起作用,但我无法理解为什么下面的代码不能正确地对我的列表进行排序。我有一种感觉,这与