我的教授指派我的课程在数组中实现mergesort,包括3部分分区和合并。
这是教授的确切问题。问题是我没有找到3-way mergesort这样的东西我只知道一个3向quicksort所以我认为他可能意味着采取一个数组,将它分成3个部分,然后合并将这3个部分合并在一起我'通过将前两个部分合并在一起,然后将组合部分与第三部分合并,这样做。
我是否正确思考并且我做了正确的事情(已经实施但我没有发布代码,因为它与我的问题没有任何关系)或者我理解错误并且有类似3的东西-way mergesort我不知道。
教授倾向于给我们分配与我们尚未学到的东西有关的任务,这就是为什么我对此持怀疑态度,而且我在谷歌等方面的表现尽可能多。
答案 0 :(得分:2)
一旦你合并了三个子数组,你可以将它们合并在一起:比较所有三个的第一个元素并将最小值放入组合数组中,然后从你从最小的数组中获取的下一个元素和再次进行compariosn,直到考虑所有子阵列元素。
确保你处理数组中只有两个元素的情况(因此你不能将它分成三个非空的部分)。另外,在上面的段落中,一个数组在合并时将在其他数组之前为空,因此您也需要考虑到这一点。
答案 1 :(得分:0)
它被称为三部分合并排序,因为它就是它的作用。 看看http://mathbits.com/MathBits/CompSci/Arrays/Merge.htm