题目:给定两个有序数组,对其进行合并
1 #!/usr/bin/env python3 2 3 def merge_sort(arya, aryb): 4 indexa = 0 5 indexb = 0 6 li = [] 7 while indexa < len(arya) and indexb < len(aryb): 8 if arya[indexa] <= aryb[indexb]: 9 li.append(arya[indexa]) 10 indexa += 1 11 else: 12 li.append(aryb[indexb]) 13 indexb += 1 14 li = li + arya[indexa:] + aryb[indexb:] 15 return li 16 17 if __name__ == '__main__': 18 b = [1,2,3,6,7,8,9,101] 19 a = [2,4,5,9,100] 20 print(merge_sort(a,b))
合并两个有序数组
基本思路是比较两个数组的最前面的数,谁小就先取谁,被取值的数组相应的索引指针就往后移一位。
然后再比较,重复这一过程,直至其中某一个数组为空。
最后把另一个数组的剩余部分复制过来即可。
代码是自己根据归并排序的原理思考出来的
参考:http://wuchong.me/blog/2014/02/09/algorithm-sort-summary/