python算法雙指針問題:兩個有序數組的合並
阿新 • • 發佈:2019-02-02
=== 分割線 實現 == 自己的 lis pri finish sts
最近在看《你也能看得懂的python算法書》,
自己來實現一下裏面的算法吧。
有書裏的有所不同。
比如這個題目,我的實現如下:
from django.test import TestCase import copy # Create your tests here. a_list = [3, 5, 8, 45, 78, 2345] b_list = [2, 5, 8, 23, 46, 89, 3235] a_len = 0 c_list = a_list.copy() for b_len in range(0, len(b_list)): while a_len < len(a_list):if b_list[b_len] <= a_list[a_len]: c_list.insert(a_len + b_len, b_list[b_len]) break else: a_len += 1 else: c_list = c_list + b_list[b_len:] break print(c_list) # ============分割線,上面是書上的,下面是自己的實現=================== a_len = 0for b_item in b_list: while a_len < len(a_list): if b_item <= a_list[a_len]: a_list.insert(a_len, b_item) break a_len += 1 else: a_list.append(b_item) print(a_list)
輸出:
[2, 3, 5, 5, 8, 8, 23, 45, 46, 78, 89, 2345, 3235] [2, 3, 5, 5, 8, 8, 23, 45, 46, 78, 89, 2345, 3235] Process finished with exit code 0
python算法雙指針問題:兩個有序數組的合並