Heim  >  Artikel  >  Backend-Entwicklung  >  So sortieren Sie in Python

So sortieren Sie in Python

DDD
DDDOriginal
2023-08-29 14:54:363418Durchsuche

Python-Sortiermethoden umfassen Blasensortierung, Auswahlsortierung, Einfügungssortierung, Schnellsortierung, Zusammenführungssortierung, Heap-Sortierung, Radix-Sortierung usw. Detaillierte Einführung: 1. Blasensortierung, Sortieren durch Vergleich benachbarter Elemente und Austausch ihrer Positionen. 2. Auswahlsortierung, Sortieren durch Suchen des kleinsten Elements in der Liste und Platzieren am Ende des sortierten Teils. 3. Einfügungssortierung, Sortieren nach Einfügen jedes Elements an der entsprechenden Position des sortierten Teils; 4. Schnelle Sortierung mit der Divide-and-Conquer-Methode, um die Liste in kleinere Unterlisten usw. zu unterteilen.

So sortieren Sie in Python

Das Betriebssystem dieses Tutorials: Windows 10-System, Python-Version 3.11.4, Dell G3-Computer.

Python ist eine leistungsstarke Programmiersprache, die mehrere Sortiermethoden zum Sortieren von Daten bereitstellt. In diesem Artikel stellen wir mindestens 7 verschiedene Sortiermethoden vor und liefern detaillierte Codebeispiele.

1. Blasensortierung:

Die Blasensortierung ist ein einfacher Sortieralgorithmus, der durch den Vergleich benachbarter Elemente und den Austausch ihrer Positionen sortiert. Die Liste wird wiederholt durchlaufen, bis keine Swaps mehr stattfinden.

def bubble_sort(arr):
    n = len(arr)
    for i in range(n-1):
        for j in range(0, n-i-1):
            if arr[j] > arr[j+1]:
                arr[j], arr[j+1] = arr[j+1], arr[j]
    return arr

2. Auswahlsortierung:

Auswahlsortierung ist ein einfacher Sortieralgorithmus, der sortiert, indem er das kleinste Element in der Liste findet und es am Ende des sortierten Teils platziert.

def selection_sort(arr):
    n = len(arr)
    for i in range(n):
        min_idx = i
        for j in range(i+1, n):
            if arr[j] < arr[min_idx]:
                min_idx = j
        arr[i], arr[min_idx] = arr[min_idx], arr[i]
    return arr

3. Einfügungssortierung:

Einfügungssortierung ist ein einfacher Sortieralgorithmus, der sortiert, indem jedes Element an der entsprechenden Position des sortierten Teils eingefügt wird.

def insertion_sort(arr):
    n = len(arr)
    for i in range(1, n):
        key = arr[i]
        j = i-1
        while j >= 0 and arr[j] > key:
            arr[j+1] = arr[j]
            j -= 1
        arr[j+1] = key
    return arr

4. Quick Sort:

Quick Sort ist ein effizienter Sortieralgorithmus, der die Divide-and-Conquer-Methode verwendet, um eine Liste in kleinere Unterlisten aufzuteilen und die Unterlisten dann rekursiv zu sortieren.

def quick_sort(arr):
    if len(arr) <= 1:
        return arr
    pivot = arr[len(arr)//2]
    left = [x for x in arr if x < pivot]
    middle = [x for x in arr if x == pivot]
    right = [x for x in arr if x > pivot]
    return quick_sort(left) + middle + quick_sort(right)

5. Merge Sort:

Merge Sort ist ein effizienter Sortieralgorithmus, der die Divide-and-Conquer-Methode verwendet, um die Liste in kleinere Unterlisten aufzuteilen, die Unterlisten dann rekursiv zu sortieren und sie schließlich zu einer geordneten Liste zu kombinieren.

def merge_sort(arr):
    if len(arr) <= 1:
        return arr
    mid = len(arr) // 2
    left = arr[:mid]
    right = arr[mid:]
    left = merge_sort(left)
    right = merge_sort(right)
    return merge(left, right)
def merge(left, right):
    result = []
    i = j = 0
    while i < len(left) and j < len(right):
        if left[i] < right[j]:
            result.append(left[i])
            i += 1
        else:
            result.append(right[j])
            j += 1
    result.extend(left[i:])
    result.extend(right[j:])
    return result

6. Heap-Sortierung:

Heap-Sortierung ist ein effizienter Sortieralgorithmus, der eine binäre Heap-Datenstruktur zum Sortieren verwendet.

def heapify(arr, n, i):
    largest = i
    l = 2 * i + 1
    r = 2 * i + 2
    if l < n and arr[i] < arr[l]:
        largest = l
    if r < n and arr[largest] < arr[r]:
        largest = r
    if largest != i:
        arr[i], arr[largest] = arr[largest], arr[i]
        heapify(arr, n, largest)
def heap_sort(arr):
    n = len(arr)
    for i in range(n//2 - 1, -1, -1):
        heapify(arr, n, i)
    for i in range(n-1, 0, -1):
        arr[i], arr[0] = arr[0], arr[i]
        heapify(arr, i, 0)
    return arr

7. Radix-Sortierung:

Radix-Sortierung ist ein nicht vergleichender Sortieralgorithmus, der Elemente nach der Anzahl der Ziffern sortiert.

def counting_sort(arr, exp):
    n = len(arr)
    output = [0] * n
    count = [0] * 10
    for i in range(n):
        index = arr[i] // exp
        count[index % 10] += 1
    for i in range(1, 10):
        count[i] += count[i-1]
    i = n - 1
    while i >= 0:
        index = arr[i] // exp
        output[count[index % 10] - 1] = arr[i]
        count[index % 10] -= 1
        i -= 1
    for i in range(n):
        arr[i] = output[i]
def radix_sort(arr):
    max_val = max(arr)
    exp = 1
    while max_val // exp > 0:
        counting_sort(arr, exp)
        exp *= 10
    return arr

Hier finden Sie detaillierte Codebeispiele für 7 verschiedene Sortiermethoden. Je nach Datensatz und Leistungsanforderungen kann die Auswahl eines geeigneten Sortieralgorithmus die Effizienz und Leistung des Codes verbessern

Das obige ist der detaillierte Inhalt vonSo sortieren Sie in Python. 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