如何理解C++合并排序代码的工作原理?

如何理解C++合并排序代码的工作原理?,c++,mergesort,C++,Mergesort,我不理解这种合并排序。看起来这个函数是主要的mergeStort入口点。它调用一个助手函数(也称为mergeSort)来进行实际排序。但助手函数似乎没有正确设置queueRear,因此在调用助手函数后,此函数必须将queueRear设置为指向队列中的最后一个条目,如果队列为空,则必须将其设置为NULL。您不了解此不完整代码的哪一部分?实际排序似乎发生在MergeSortQueeFront中;但你并没有表现出……不仅代码是不完整的,而且看起来不像是合并排序。元素比较在哪里?这段代码做了一些其他的事

我不理解这种合并排序。

看起来这个函数是主要的mergeStort入口点。它调用一个助手函数(也称为mergeSort)来进行实际排序。但助手函数似乎没有正确设置queueRear,因此在调用助手函数后,此函数必须将queueRear设置为指向队列中的最后一个条目,如果队列为空,则必须将其设置为NULL。

您不了解此不完整代码的哪一部分?实际排序似乎发生在MergeSortQueeFront中;但你并没有表现出……不仅代码是不完整的,而且看起来不像是合并排序。元素比较在哪里?这段代码做了一些其他的事情,然后name说,所以它是在向您发布。因此,这是一个不应该用于学习的错误代码。您有一个链表queueFront和一个指向列表中最后一个元素的指针queueRear。这将调用另一个未显示的函数对该列表进行排序,然后更新queueRear,使其正确地指向列表的新端。
template<class Type>
void linkedQueueType<Type>::mergeSort() {
    mergeSort(queueFront);
    if (queueFront == NULL) 
        queueRear = NULL;
    else {
        queueRear = queueFront;
        while (queueRear->link != NULL)
            queueRear = queueRear->link;
    }
    return;
}