Python算法——合併有序數組

while...else...用法

注意索引鎖定位置

import time
 
start = time.time()
arr1 = [1, 3, 4, 6, 10]
arr2 = [2, 5, 8, 11]
ans = arr1.copy()
ind = 0
for i in range(len(arr2)):
    while ind < len(arr1):
        if arr2[i] < arr1[ind]:
            arr1.insert(ind+i, arr2[i])  # 已經插入了i個,所以索引增加i
            break
        else:
            ind += 1
    else:               # while...else...如果while跳出,是因爲條件false(ind>=len)執行else
        ans = ans + arr2[i:]
print(ans)
print(time.time()-start)
 

發佈了112 篇原創文章 · 獲贊 35 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章