ホームページ >バックエンド開発 >Python チュートリアル >Pythonの挿入ソートアルゴリズムを使った簡単な分析とコード例を詳しく解説

Pythonの挿入ソートアルゴリズムを使った簡単な分析とコード例を詳しく解説

高洛峰
高洛峰オリジナル
2017-03-06 13:32:561303ブラウズ

問題の説明

ランダムに配置された一連の数字を小さい順から大きい順に並べ替えます。

挿入アルゴリズム

配列から一度に 1 つの数値を取得し、既存の数値と比較して、適切な位置に挿入します。

このようにして、番号が取り出されるまで、つまり並べ替えが成功するまで、既存の番号を順番に保つことができるたびに繰り返します。

これは、トランプをプレイするときのカードを引く状況と非常によく似ています。

最初の条件: 手札のカードの順序を正しく保つ
2 つ目の条件: 新しいカードを取得するたびに、カードを手札に挿入します順番的には真ん中。
この 2 つの項目が変更されていないことを確認すると、何枚カードを引いても、手札の最後のカードが順番に配置されます。现Python実装:

def insertion_sort(n):
 if len(n) == 1:
  return n
 b = insertion_sort(n[1:])
 m = len(b)
 for i in range(m):
  if n[0] <= b[i]:
   return b[:i]+[n[0]]+b[i:]
 return b + [n[0]]

別のバージョン:



def insertion_sort(lst):
 if len(lst) == 1:
  return lst

 for i in xrange(1, len(lst)):
  temp = lst[i]
  j = i - 1
  while j >= 0 and temp < lst[j]:
   lst[j + 1] = lst[j]
   j -= 1
  lst[j + 1] = temp
 return lst


Pythonの簡単な分析とコード例のより詳細な説明は、PHP中国語ウェブサイトに従ってください!

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。