python 归并排序

def merge_sort(array):

    def merge_arr(arr_l, arr_r):

        array = []

        while len(arr_l) and len(arr_r):

            if arr_l[0] <= arr_r[0]:

                array.append(arr_l.pop(0))

            elif arr_l[0] > arr_r[0]:

                array.append(arr_r.pop(0))

        if len(arr_l) != 0:

            array += arr_l

        elif len(arr_r) != 0:

            array += arr_r

        return array

 

    def recursive(array):

        if len(array) == 1:

            return array

        mid = len(array) // 2

        arr_l = recursive(array[:mid])

        arr_r = recursive(array[mid:])

        return merge_arr(arr_l, arr_r)

 

    return recursive(array)
hlist = merge_sort([4,5,6,7,3,2,6,9,8])
  
print(hlist)

  

原文地址:https://www.cnblogs.com/sea-stream/p/9689095.html