class Solution:

    def merge(self, a, b):

        n, m, i, j = len(a), len(b), 0, 0

        a, b, c = a + [50001], b + [50001], []

        while len(c) < n+m:

            if a[i] <= b[j]:

                c.append(a[i])

                i += 1

            else:

                c.append(b[j])

                j += 1

        return c

        

    def sortArray(self, nums: List[int]) -> List[int]:

        n = len(nums) // 2

        if n == 0:

            return nums

        return self.merge(self.sortArray(nums[:n]), self.sortArray(nums[n:]))


생각난 김에 머지소트를 구현해보았다.

빌트인보다 시간 세 배 걸리는거 실화? ㅜㅜ


Time Submitted
Status
Runtime
Memory
Language
03/01/2023 09:08Accepted2078 ms23.1 MBpython3
03/01/2023 09:01Accepted690 ms22.2 MBpython3


아래가 빌트인 위가 내가 짠 소트..