Zum Hauptinhalt springen

Möglichkeiten zum Sortieren eines Arrays in Python: Eine detaillierte Anleitung

Das Sortieren eines Arrays ist eine der grundlegenden Operationen beim Arbeiten mit Daten in der Programmierung. Die Programmiersprache Python bietet verschiedene Möglichkeiten, Arrays zu sortieren, von denen jedes seine eigenen Merkmale hat und in verschiedenen Fällen angewendet wird.

Eine ausführliche Anleitung zum Sortieren eines Arrays in Python hilft Ihnen dabei, die verschiedenen Sortiermethoden zu verstehen und die für Ihre spezifische Aufgabe am besten geeignete auszuwählen. In diesem Artikel betrachten wir gängige Sortiermethoden wie Blasensortierung, Einfügesortierung, Auswahlsortierung, Zusammenführungssortierung und schnelle Sortierung.

Jede dieser Methoden wird detailliert beschrieben, einschließlich ihrer Algorithmen, Python-Codebeispiele und einer Erklärung ihrer Komplexität. Sie erfahren, wie Sie mit diesen Methoden ein Array beliebiger Datentypen sortieren können - Zahlen, Strings und Objekte. Sie werden auch verstehen, wie Sie die Array-Sortierung optimieren und einige häufige Leistungsprobleme vermeiden können.

Nachdem Sie diesen Artikel gelesen haben, werden Sie sich bei der Auswahl und Anwendung von Sortiermethoden in Python sicherer fühlen. Sie können Ihre Datenarrays effizient sortieren und die Leistung Ihrer Programme verbessern. Holen Sie sich die Fähigkeiten zum Sortieren eines Arrays in Python und verbessern Sie jetzt Ihre Fähigkeiten in der Softwareentwicklung!

Integrierte Sortierfunktionen

Python bietet integrierte Funktionen zum Sortieren von Arrays, die den Sortiervorgang erheblich vereinfachen und das Schreiben von nativem Code Zeit sparen. Hier sind einige der am häufigsten verwendeten integrierten Funktionen:

sorted() - eine Funktion, die das sortierte Array zurückgibt, ohne das ursprüngliche Array zu ändern. Es akzeptiert ein iterierbares Objekt und zusätzliche Parameter wie einen Sortierschlüssel und eine Sortierreihenfolge.

sort() - eine Methode, die ein Array an seiner Stelle sortiert, es ändert und nichts zurückgibt. Es wird direkt auf dem Array aufgerufen und kann die gleichen Parameter wie die Funktion sorted() annehmen.

reverse() - eine Methode, die die Reihenfolge der Array-Elemente in umgekehrter Reihenfolge ändert. Es wird auch auf dem Array aufgerufen und gibt nichts zurück. Dabei ändert sich die Vergleichsreihenfolge nicht, sondern nur die Reihenfolge der Elemente ändert sich.

Funktion sorted() kann zum Sortieren beliebiger iterierbarer Objekte verwendet werden, einschließlich Zeilen, Zahlen und benutzerdefinierter Objekte. Sie bietet eine flexiblere und leistungsfähigere Sortierung im Vergleich zur sort() -Methode, da Sie das Experimentieren mit verschiedenen Sortierschlüsseln und Sortierreihenfolgen ermöglicht.

Hier sind Beispiele für die Verwendung dieser Funktionen:

# Сортировка массива с использованием функции sorted()array = [4, 2, 6, 1, 8, 3]sorted_array = sorted(array)print(sorted_array) # Output: [1, 2, 3, 4, 6, 8]# Сортировка массива на месте с использованием метода sort()array = [4, 2, 6, 1, 8, 3]array.sort()print(array) # Output: [1, 2, 3, 4, 6, 8]# Изменение порядка элементов массива с использованием метода reverse()array = [4, 2, 6, 1, 8, 3]array.reverse()print(array) # Output: [3, 8, 1, 6, 2, 4]

Die integrierten Sortierfunktionen sind eines der wichtigsten Werkzeuge in Python für die Arbeit mit Arrays. Sie ermöglichen es Ihnen, Elemente in Arrays einfach zu sortieren und neu anzuordnen, was sie in verschiedenen Programmierszenarien wichtig macht.

Funktion sorted()

In der Programmiersprache Python gibt es eine integrierte Funktion sorted(), mit der Sie ein Array in aufsteigender oder absteigender Reihenfolge sortieren können.

Die Funktion sorted() akzeptiert ein Array (oder ein iterierbares Objekt) als Argument und gibt das neue sortierte Array zurück, ohne das ursprüngliche Array zu ändern. Die Sortierung erfolgt basierend auf den Werten der Arrayelemente.

Beispiel für die Verwendung der Funktion sorted():

numbers = [52819]sorted_numbers = sorted(numbers)
Standardmäßig sortiert die Funktion sorted() ein Array in aufsteigender Reihenfolge. Sie können jedoch den key-Parameter verwenden, um die Funktion festzulegen, nach der die Sortierung erfolgen soll. Sie können beispielsweise ein Array von Strings nach ihrer Länge sortieren:
words = ["apple", "banana", "cherry", "date"]sorted_words = sorted(words, key=len)




Функция sorted() также позволяет задать параметр reverse, который указывает на необходимость сортировки по убыванию значений. Например:
numbers = [5, 2, 8, 1, 9]sorted_numbers = sorted(numbers, reverse=True)
Таким образом, функция sorted() является удобным инструментом для сортировки массивов на языке Python, предлагая различные опции сортировки по возрастанию или убыванию значений.

Methode sort()


Синтаксис использования метода sort() прост и понятен:массив.sort()
Однако стоит отметить, что данный метод изменяет сам массив, а не создает новый отсортированный массив. Он сортирует элементы "на месте".
Для применения метода sort() к массиву, содержащему числа, достаточно одной строки кода:numbers = [4, 2, 9, 1, 7]numbers.sort()print(numbers)[1, 2, 4, 7, 9]
Также метод sort() может быть использован для сортировки массива, содержащего строки:fruits = ['apple', 'banana', 'cherry', 'durian']fruits.sort()print(fruits)['apple', 'banana', 'cherry', 'durian']
Метод sort() также может быть применен к массиву, содержащему объекты:class Person:def __init__(self, name, age):self.name = nameself.age = agedef __repr__(self):return f'Person(name="", age=)'people = [Person('John', 22),Person('Alice', 20),Person('Bob', 25)]people.sort(key = lambda x: x.name)print(people)[Person(name="Alice", age=20), Person(name="Bob", age=25), Person(name="John", age=22)]
Метод sort() также позволяет сортировать массивы в обратном порядке:numbers = [4, 2, 9, 1, 7]numbers.sort(reverse=True)print(numbers)[9, 7, 4, 2, 1]
Важно помнить, что метод sort() может быть неэффективным для больших массивов или массивов, содержащих сложные объекты. В таких случаях рекомендуется использовать метод sorted() или модуль operator.

Blase sortieren


Принцип работы сортировки пузырьком:
  • Es werden mehrere Durchgänge durch das Array durchgeführt und benachbarte Elemente verglichen und vertauscht.
  • Bei jedem Durchgang "taucht" das größte Element am Ende des Arrays auf, wie eine Blase im Wasser auftaucht.
  • Nach jedem Durchgang wird das größte Element am Ende des Arrays platziert, dh die Länge des unsortierten Bereichs des Arrays wird um 1 reduziert.

Алгоритм сортировки пузырьком:
  1. Durchlaufen Sie das Array von Anfang bis Ende.
  2. Vergleichen Sie das aktuelle Element mit dem nächsten Element.
  3. Wenn das aktuelle Element größer als das nächste ist, tauschen Sie es aus.
  4. Wiederholen Sie die Schritte 2-3 für jedes Elementpaar vom Anfang bis zum Ende des Arrays.
  5. Wenn bei jedem Durchgang keine Elemente ausgetauscht wurden, ist das Array bereits sortiert und der Algorithmus kann gestoppt werden.

Преимущества сортировки пузырьком:
  • Einfache Implementierung und verständlicher Algorithmus.
  • Funktioniert gut für kleine Arrays und fast sortierte Daten.

Недостатки сортировки пузырьком:
  • Geringe Effizienz für große Arrays und ungeordnete Daten.
  • Die hohe Zeitkomplexität des Algorithmus ist O(n^2). Dies bedeutet, dass die Ausführungszeit des Algorithmus mit zunehmender Anzahl von Elementen im Array quadriert wird.

Blasensortieralgorithmus


Для сортировки пузырьком необходимо проходить по массиву несколько раз, сравнивая пары соседних элементов и меняя их местами, если они находятся в неправильном порядке. Каждый проход по массиву гарантированно перемещает самый большой (или самый маленький) элемент в конец (или начало) массива.
Вот пример кода на языке Python, реализующий алгоритм сортировки пузырьком:
def bubble_sort(array):n = len(array)for i in range(n):for j in range(0, n-i-1):if array[j] > array[j+1]:array[j], array[j+1] = array[j+1], array[j]return array

Алгоритм сортировки пузырьком имеет сложность O(n^2), что делает его неэффективным для больших массивов. Однако этот алгоритм обладает простой реализацией и может быть полезен для небольших массивов или в учебных целях.
Важно отметить, что алгоритм сортировки пузырьком может быть улучшен добавлением оптимизаций, таких как проверка флагом наличия обменов и ограничение рабочей зоны. Также, существуют более эффективные алгоритмы сортировки, такие как быстрая сортировка или сортировка слиянием, которые следует использовать для больших массивов или в более серьезных задачах.