算法题/两个数组排序

来源:互联网 发布:路由器显示网络不可用 编辑:程序博客网 时间:2024/06/05 09:15

python 2.7

将两个排序的数组merge成新的排好序的数组
思路:两个排好序的数组(从小到大),定义两个指针分别指向两个数组的首部位置,定义一个空数组result
当两个数组都没遍历完:
如果a[i]>b[j],将b[j]追加到result中,j再加1
如果a[i]

#coding:utf-8def merge(arr1,arr2):    result=[]    arr1len = len(arr1)    arr2len = len(arr2)    totallen = arr1len + arr2len    i = 0    j = 0    for index in range(totallen):        if(i<arr1len and j<arr2len):            if(arr1[i]>=arr2[j]):                result.append(arr2[j])                j = j+1            else:                result.append(arr1[i])                i = i+1        elif(j >= arr2len):            result.append(arr1[i])            i = i+1        elif(i > arr1len):            result.append(arr2[j])            j = j+1    return resulta = [1,2,3,4]b = [2,3,4,5]c = merge(a,b)print(c)

这里写图片描述

方法二:

#coding:utf-8def resort_arr(a,b)    return sort(a+b)print(resort_arr([1,2,3,4],[2,3,4,5]))
原创粉丝点击