本文仅供学习清华大学出版社所出数目《Python编程300例》使用,如有侵权,请联系本人删除。
'''
1、问题描述
合并两个升序的整数数组A和B,形成一个新的数组,新数组也要有序。
2、问题示例
输入A=[1],B=[1],输出[1,1],返回合并后的数组。输入A=[1,2,3,4],B=[2,4,5,6],输出[1,2,2,3,4,4,5,6],返回合并所有元素后的数组。
3、代码实现
'''
class Solution:
#参数A:有序整数数组A
#参数B:有序整数数组B
#返回:一个新的有序整数数组
def mergeSortedArray(self,A,B): #此方法不适合无序数组的合并排序,只适合有序数组
i,j = 0,0
C = []
while i<len(A) and j<len(B):
if A[i]<B[j]:
C.append(A[i])
i+=1
else:
C.append(B[j])
j+=1
while i<len(A): #用来处理超过A或B数组的长度
C.append(A[i])
i+=1
while j<len(B):
C.append(B[j])
j+=1
return C
#主函数
if __name__ == '__main__' :
# A = [1,4]
# B = [1,2,3]
# D = [1,2,3,4]
# E = [2,4,5,6]
# solution = Solution()
# solution1=solution.mergeSortedArray(A,B)
# solution2 = solution.mergeSortedArray(D,E)
# print("输入:",A," ",B)
# print("输出:",solution1)
# print("输入:", D, " ", E)
# print("输出:", solution2)
A = input("输入A:").split(",")
B = input("输入B:").split(",")
solution = Solution()
print("输出:",solution.mergeSortedArray(A,B))
C = []
for i in range (len(A)):
C.append(A[i])
for j in range (len(B)):
C.append(B[j])
C.sort(reverse=False)
print("C.sort(reverse=False):",C)
C.sort(reverse=True)
print("C.sort(reverse=True)",C)
'''
4、总结
sort的具体用法为 list.sort(reverse=True/False)作为一条函数语句使用,返回值为list本身,True为降序,False为升序
'''