تابعی بنویسید که دو لیست را در یک لیست ادغام کند و لیست جدید را به همان ترتیبی که لیست اول مرتب شده بود، مرتب کند.
نمونه ورودی و خروجی
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}));
نظرات