abbarnes icon

Merge_Sort_Python2

abbarnes | PRO | 01/21/18 04:01:56 PM UTC | 0 ⭐ | 235 👁️ | Never ⏰ | []
Python |

910 B

|

None

|

0 👍

/

0 👎

# Functions to perform merge sort
# Uses Python2
 
def merge(list1, list2):
    """
   Merge two sorted lists.
 
   Returns a new sorted list containing those elements that are in
   either list1 or list2.
 
   This function can be iterative.
   """  
    merged = []
    first = list(list1)
    second = list(list2)
    while len(merged) < len(list1) + len(list2) and first and second:
        if first[0] < second[0]:
            merged.append(first.pop(0))
        else:
            merged.append(second.pop(0))
    merged += first
    merged += second
    return merged
               
def merge_sort(list1):
    """
   Sort the elements of list1.
 
   Return a new sorted list with the same elements as list1.
 
   This function should be recursive.
   """
    if len(list1) <= 1:
        return list1
    half = len(list1)/2
    return merge(merge_sort(list1[0:half]), merge_sort(list1[half:]))

Comments