我有一个std :: vector作为我公开的API的输入之一。 我知道这个API的用户可以发送一个巨大的矢量,但该矢量是通过串联的排序矢量形成的。这意味着我得到的矢量是由许多排序后的矢量构成的。排序一个std ::向量,它的部分已排序(通过排序向量的串联形成)
我需要排序这个向量。 我想知道哪种排序算法最适合。 我宁愿像就地合并或快速排序算法,因为我不想占用更多的内存(矢量已经是一个巨大的)。
将API接口更改为接受N个已排序的向量,然后自己进行N路合并,也会更好。除非储蓄真的很大,否则我不希望这样做。 另外,在做N方式合并时,如果可能,我想在原地进行。
所以理想情况下,我更喜欢这种方法,我在大矢量上使用一些准备好的排序算法(因为这会让我感觉更简单)。