Skip to content

Fix merge_sort performance and mutation issues #1

@Born-as-Harsha

Description

@Born-as-Harsha

Feature description

Problem:
Used pop(0) on lists (O(n) per operation → total O(n²) time complexity).

Fix:
Replaced lists with collections.deque for O(1) pops from the front.

from collections import deque

def merge(left, right):
left, right = deque(left), deque(right)
result = []
while left and right:
result.append(left.popleft() if left[0] <= right[0] else right.popleft())
result.extend(left)
result.extend(right)
return result

Fix TheAlgorithms#2 — Prevent Input Mutation

Problem:
Original function modified the input list directly, causing side effects.

Fix:
Make a copy of the input before sorting.

collection = collection.copy()

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions