تابعی بنویسید که دو لیست را در یک لیست ادغام کند و لیست جدید را به همان ترتیبی که لیست اول مرتب شده بود، مرتب کند.
نمونه ورودی و خروجی
MergeSort([1, 2, 3], [5, 4, 6]) ➞ [1, 2, 3, 4, 5, 6]
MergeSort([8, 6, 4, 2], [-2, -6, 0, -4]) ➞ [8, 6, 4, 2, 0, -2, -4, -6]
MergeSort([120, 180, 200], [190, 175, 130]) ➞ [120, 130, 175, 180, 190, 200]
نکات
- همیشه دو لیست به عنوان آرگومان به تابع داده میشود.
- لیست اول همیشه مرتبشده است، چه به صورت صعودی (asc) و چه به صورت نزولی (desc)
EXPECT_EQ(MergeSort({1, 2, 3}, {5, 4, 6}), std::vector({1, 2, 3, 4, 5, 6})); EXPECT_EQ(MergeSort({8, 6, 4, 2}, {-2, -6, 0, -4}), std::vector ({8, 6, 4, 2, 0, -2, -4, -6})); EXPECT_EQ(MergeSort({120, 180, 200}, {190, 175, 130}), std::vector ({120, 130, 175, 180, 190, 200})); EXPECT_EQ(MergeSort({25, 21, 17, 13}, {}), std::vector ({25, 21, 17, 13})); EXPECT_EQ(MergeSort({1024, 2048}, {512, 128, 64}), std::vector ({64, 128, 512, 1024, 2048})); EXPECT_EQ(MergeSort({-1, -3}, {11, -5, 7, -11}), std::vector ({11, 7, -1, -3, -5, -11}));
نظرات