Python實現兩個有序陣列合併為乙個有序陣列

2021-09-22 08:07:05 字數 673 閱讀 4750

def merge(a, b):

"""合併2個有序陣列,預設a,b都是從小到大的有序陣列

"""#1.臨時變數

i, j = 0, 0 #分別標記2個陣列的起始位置

na, nb = len(a), len(b) #分別標記2個陣列的長度

temp = #臨時存放空間

#2.只要2個陣列不為空:比較大小a[i]a[j],依次填入temp

while i<=na-1 and j<=nb-1:

if a[i] <= b[j]:

i+=1

else:

j+=1

#3.判斷哪個陣列還有剩餘

if i<=na-1:

start = i

end = na-1

#4.將剩餘部分新增到temp中

temp.extend(a[start:end+1])

else:

start = j

end = nb-1

temp.extend(b[start:end+1])

#5.返回合併的新陣列

return temp

a = [1,2,4,6,9]

b = [5,8,10,22]

mergearr = merge(a,b)

兩個有序陣列合併

題目描述 已知陣列a中有m個按公升序排列的元素,陣列b中有n個按降序排列的元素,程式設計將a與b中的所有元素按降序存入陣列c中。輸入輸入有兩行,第一行首先是乙個正整數m,然後是m個整數 第二行首先是乙個正整數n,然後是n個整數,m,n均小於等於1000000。輸出輸出合併後的m n個整數,資料之間用...

C 兩個有序陣列合併

源自劍指offer中的思考題,有序陣列a b,a有足夠空間容納b,將a,b按順序排列。思路 也是用兩個指標從尾部開始進行依次比較,較大的放在新陣列的後邊,然後指標依次轉移。1.la,lb分別指向a和b的尾部,index指向融合陣列的尾部 2.然後比較,大的放在index出,index向前移動一位,然...

1124 兩個有序陣列合併

time limit 1 sec memory limit 128 mb submit 6260 solved 2262 submit status web board 已知陣列a中有m個按公升序序排列的元素,陣列b中有n個降序排列的元素,程式設計將a與b中的所有元素按降序存入陣列c中。輸入有兩行,...