Ausführliche Erläuterung einfacher Analysen und Codebeispiele zur Verwendung des Einfügungssortierungsalgorithmus in Python

高洛峰
Freigeben: 2017-03-06 13:32:56
Original
1288 Leute haben es durchsucht

Problembeschreibung

Ordnen Sie eine Reihe zufällig angeordneter Zahlen in der Reihenfolge von klein nach groß neu an.

Einfügealgorithmus

Nimmt jeweils eine Zahl aus dem Array, vergleicht sie mit der vorhandenen Zahl und fügt sie an der entsprechenden Position ein.

Wiederholen Sie diesen Vorgang jedes Mal, wenn Sie die vorhandenen Nummern in der richtigen Reihenfolge halten können, bis die Nummern herausgenommen werden, das heißt, die Sortierung ist erfolgreich.

Dies ist der Situation beim Kartenziehen beim Kartenspielen sehr ähnlich.

Die erste Bedingung: Halten Sie die Reihenfolge der Karten in Ihrer Hand korrekt.
Die zweite Bedingung: Ziehen Sie alle Karten neu Zeit: Die Karten werden der Reihe nach in die Mitte der Handkarten gesteckt.
Lassen Sie diese beiden Punkte unverändert, dann werden die letzten Karten in Ihrer Hand, egal wie viele Karten Sie ziehen, in der richtigen Reihenfolge angeordnet.

Python-Implementierung:

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]]
Nach dem Login kopieren


Eine andere Version:

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
Nach dem Login kopieren


Für detailliertere Erklärungen einfacher Analysen und Codebeispiele für die Verwendung des Einfügungssortierungsalgorithmus in Python achten Sie bitte auf PHP Chinesische Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage