Heim >Backend-Entwicklung >Python-Tutorial >Python-Schnellsortierung, Einfügungssortierungsalgorithmus, detaillierte Erläuterung benutzerdefinierter Sortierbeispiele
Dieser Artikel stellt hauptsächlich Python vor, um schnelle Sortier- und Einfügungssortierungsalgorithmen zu implementieren und Beispiele für benutzerdefinierte Sortierung zu verwenden. Freunde in Not können sich darauf beziehen
1. SchnellsortierungQuicksort ist eine Verbesserung der
Blasensortierung. Vorgeschlagen von C. A. R. Hoare im Jahr 1962. Seine Grundidee besteht darin, die zu sortierenden Daten durch eine Sortierung in zwei unabhängige Teile aufzuteilen. Alle Daten in einem Teil sind kleiner als alle Daten im anderen Teil und diese Methode wird dann verwendet, um die beiden Teile der Daten schnell zu trennen . Sortieren: Der gesamte Sortiervorgang kann rekursiv durchgeführt werden, sodass die gesamten Daten zu einer geordneten Sequenz werden. Schnelle Sortierung, rekursive Implementierung
def quick_sort(num_list): """ 快速排序 """ if num_list == []: return num_list smallList = [] bigList = [] middleElement = num_list[0] for i in num_list[1:]: if i <= middleElement: smallList.append(i) else: bigList.append(i) return quick_sort(smallList)+[middleElement]+quick_sort(bigList)2. Einfügungssortierung
Die Algorithmusbeschreibung von Einfügungssortierung ist ein einfacher und intuitiver Sortieralgorithmus . Es funktioniert, indem es eine geordnete Sequenz erstellt. Bei unsortierten Daten scannt es die sortierte Sequenz von hinten nach vorne, findet die entsprechende Position und fügt sie ein. Bei der Implementierung der Einfügungssortierung wird normalerweise die In-Place-Sortierung verwendet (d. h. eine Sortierung, die nur O(1) zusätzlichen Platz beansprucht). Daher müssen die sortierten Elemente während des Scanvorgangs von hinten nach vorne wiederholt und schrittweise sortiert werden nach hinten verschoben, um Platz zum Einfügen des neuesten Elements zu schaffen.
Einfügungssortierung
def insert_sort(num_list): """ 插入排序 """ for i in range(len(num_list)-1): for j in range(i+1, len(num_list)): if num_list[i]>num_list[j]: num_list[i],num_list[j] = num_list[j],num_list[i] return num_list3. Eine benutzerdefinierte Sortierung
kann durch Verwendung der Schlüssel sort() oder sorted() erreicht werden.
Beispiele sind wie folgt:
def sort_key(obj): sorted_list = [4, 2, 5, 9, 7, 8, 1, 3, 6, 0] return sorted_list.index(obj) if name == 'main': print sorted(range(10), key=sort_key) # 输出结果如下 [4, 2, 5, 9, 7, 8, 1, 3, 6, 0]Indexposition
des Schlüsselworts in der Liste, um eine benutzerdefinierte Sortierung durchzuführen
Das obige ist der detaillierte Inhalt vonPython-Schnellsortierung, Einfügungssortierungsalgorithmus, detaillierte Erläuterung benutzerdefinierter Sortierbeispiele. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!