Heim >Backend-Entwicklung >Python-Tutorial >Pythons schnelle Sortiermethode

Pythons schnelle Sortiermethode

巴扎黑
巴扎黑Original
2017-08-07 13:24:141055Durchsuche

Dieser Artikel stellt hauptsächlich den in Python implementierten Schnellsortierungsalgorithmus vor und analysiert die Prinzipien, Implementierungsmethoden und zugehörigen Betriebstechniken der Python-Schnellsortierung in Form von Beispielen

Die Beispiele in diesem Artikel beschreiben den in Python implementierten Schnellsortierungsalgorithmus. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:

Die Grundidee der schnellen Sortierung besteht darin, die zu sortierenden Daten durch eine Sortierung in zwei unabhängige Teile und alle Daten in einer zu teilen Ein Teil ist höher als alle Daten im anderen Teil. Verwenden Sie dann diese Methode, um die beiden Teile der Daten schnell zu sortieren, sodass die gesamten Daten zu einer geordneten Sequenz werden .

Wählen Sie beispielsweise in der Reihenfolge [6, 8, 1, 4, 3, 9] 6 als Basiszahl aus. Scannen Sie von rechts nach links und suchen Sie nach einer Zahl, die kleiner als die Basiszahl 3 ist, vertauschen Sie die Positionen von 6 und 3, [3, 8, 1, 4, 6, 9], scannen Sie dann von links nach rechts und suchen Sie nach einer Zahl größer als die Basiszahl Die Zahl ist 8, vertauschen Sie die Positionen von 6 und 8, [3, 6, 1, 4, 8, 9]. Wiederholen Sie den obigen Vorgang, bis die Zahlen links von der Basiszahl kleiner und die Zahlen rechts davon größer sind. Führen Sie dann die obige Methode rekursiv für die Sequenzen links und rechts von der Referenznummer aus.

Der Implementierungscode lautet wie folgt:


def parttion(v, left, right):
  key = v[left]
  low = left
  high = right
  while low < high:
    while (low < high) and (v[high] >= key):
      high -= 1
    v[low] = v[high]
    while (low < high) and (v[low] <= key):
      low += 1
    v[high] = v[low]
    v[low] = key
  return low
def quicksort(v, left, right):
  if left < right:
    p = parttion(v, left, right)
    quicksort(v, left, p-1)
    quicksort(v, p+1, right)
  return v
s = [6, 8, 1, 4, 3, 9, 5, 4, 11, 2, 2, 15, 6]
print("before sort:",s)
s1 = quicksort(s, left = 0, right = len(s) - 1)
print("after sort:",s1)

Laufergebnisse:


before sort: [6, 8, 1, 4, 3, 9, 5, 4, 11, 2, 2, 15, 6]
after sort: [1, 2, 2, 3, 4, 4, 5, 6, 6, 8, 9, 11, 15]

Das obige ist der detaillierte Inhalt vonPythons schnelle Sortiermethode. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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
Vorheriger Artikel:Numerische Python-TypenNächster Artikel:Numerische Python-Typen