Implement a custom sorting algorithm and explain its time complexity without using standard library shortcuts.
Write sort_numbers(nums) to return a new list containing the integers in nondecreasing order. Do not call sorted, .sort, or any library sorting routine. Your solution should correctly handle duplicates, negative values, an empty list, and a single-element list. State the algorithm's time and auxiliary-space complexity.
def sort_numbers(nums):