Python 3は、2つの順序配列コードの例を統合します。


第一の考え方は、二つの数を一つの配列に結合してから並べ替えて、問題は泡が出てきて、早く並べられました。二つの配列の秩序性を使用していません。よくないです
第二の考え方は、循環的に2つの配列の頭の位置要素の大きさを比較し、新しい配列に頭の要素を入れて、古い配列から削除します。そのうちの1つの配列の長さが0になるまで。空ではない古い行列の残りを新しい配列の最後に追加します。はい、
第二の考え方の順序付けアルゴリズムとテストコードは以下の通りである。

def merge_sort(a, b):
  ret = []
  while len(a)>0 and len(b)>0:
    if a[0] <= b[0]:
      ret.append(a[0])
      a.remove(a[0])  
    if a[0] >= b[0]:
      ret.append(b[0])
      b.remove(b[0])
  if len(a) == 0:
    ret += b
  if len(b) == 0:
    ret += a
  return ret


if __name__ == '__main__':
  a = [1,3,4,6,7,78,97,190]
  b = [2,5,6,8,10,12,14,16,18]
  print(merge_sort(a, b))
上記の過程を反省しました。removeの方法を使うべきではないです。よく考えてみると、removeの方法は時間がかかります。一番簡単ではないです。
改善して、インデックス要素の比較法に変えて、頭の要素の比較法に取って代わる:

def merge_sort(a, b):
  ret = []
  i = j = 0
  while len(a) >= i + 1 and len(b) >= j + 1:
    if a[i] <= b[j]:
      ret.append(a[i])
      i += 1
    else:
      ret.append(b[j])
      j += 1
  if len(a) > i:
    ret += a[i:]
  if len(b) > j:
    ret += b[j:]
  return ret

if __name__ == '__main__':
  a = [1,3,4,6,7,78,97,190]
  b = [2,5,6,8,10,12,14,16,18]
  print(merge_sort(a, b))
これは基本的に一番簡単な方法です。
以上が本文の全部です。皆さんの勉強に役に立つように、私たちを応援してください。