Heim Backend-Entwicklung Python-Tutorial Wie implementiert man einen Zählsortieralgorithmus mit Python?

Wie implementiert man einen Zählsortieralgorithmus mit Python?

Sep 22, 2023 am 08:33 AM
python 实现 Zählsortierung

Wie implementiert man einen Zählsortieralgorithmus mit Python?

Wie implementiert man einen Zählsortieralgorithmus mit Python?

Counting Sort ist ein linearer Sortieralgorithmus nach Zeitkomplexität, der zum Sortieren von Ganzzahlen oder Arrays mit einem bestimmten Wertebereich verwendet werden kann. Seine Grundidee besteht darin, zu zählen, wie oft jedes Element vorkommt, und das Element basierend auf der Häufigkeit an der richtigen Position zu platzieren. Im Folgenden wird die Verwendung von Python zum Implementieren des Zählsortieralgorithmus vorgestellt und spezifische Codebeispiele gegeben.

Zunächst müssen wir den Kerngedanken der Zählsortierung klären. Die Ausführungsschritte der Zählsortierung lauten wie folgt:

  1. Suchen Sie die größte Zahl im zu sortierenden Array und erstellen Sie eine Hilfsarray-Zählung mit einer Länge der maximalen Zahl plus 1, die zum Speichern der Anzahl der Vorkommen von verwendet wird jedes Element;
  2. Durchlaufen Sie das zu sortierende Array, zählen Sie die Anzahl der Vorkommen jedes Elements und speichern Sie es im Zählarray.
  3. Führen Sie eine Akkumulationsoperation für das Zählarray durch, um den korrekten Positionsindex jedes Elements zu erhalten Erstellen Sie ein Ergebnisarray mit derselben Länge wie das zu sortierende Array.
  4. Durchlaufen Sie das zu sortierende Array und platzieren Sie die Elemente entsprechend dem Index des Elementwerts im Zählarray.
  5. Geben Sie das Ergebnis zurück Array-Ergebnis, das das sortierte Array ist.
  6. Das Folgende ist ein Codebeispiel mit Python zur Implementierung des Zählsortieralgorithmus:
def counting_sort(arr):
    # 找出最大值
    max_val = max(arr)
    # 创建辅助数组count,并初始化为0
    count = [0] * (max_val + 1)

    # 统计每个元素出现的次数
    for num in arr:
        count[num] += 1

    # 对count数组进行累加操作
    for i in range(1, len(count)):
        count[i] += count[i - 1]

    # 创建结果数组result
    result = [0] * len(arr)

    # 将元素放置到正确的位置上
    for num in arr:
        index = count[num] - 1
        result[index] = num
        count[num] -= 1

    # 返回结果数组
    return result
Nach dem Login kopieren

Als nächstes können wir den Zählsortieralgorithmus auf folgende Weise testen:

arr = [4, 2, 3, 4, 1]
sorted_arr = counting_sort(arr)
print(sorted_arr)
Nach dem Login kopieren

Führen Sie den obigen Code aus. Das Ausgabeergebnis lautet: [1 , 2, 3, 4 , 4].

Anhand der obigen Codebeispiele können wir sehen, dass die Implementierungsschritte des Zählsortieralgorithmus relativ einfach sind. Es handelt sich um einen sehr effizienten Sortieralgorithmus für Arrays mit einem bestimmten Wertebereich. Ich hoffe, dieser Artikel hilft Ihnen, den Zählsortieralgorithmus zu verstehen und zu verwenden!

Das obige ist der detaillierte Inhalt vonWie implementiert man einen Zählsortieralgorithmus mit Python?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Repo: Wie man Teamkollegen wiederbelebt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Wie kann ich die gesamte Spalte eines Datenrahmens effizient in einen anderen Datenrahmen mit verschiedenen Strukturen in Python kopieren? Wie kann ich die gesamte Spalte eines Datenrahmens effizient in einen anderen Datenrahmen mit verschiedenen Strukturen in Python kopieren? Apr 01, 2025 pm 11:15 PM

Bei der Verwendung von Pythons Pandas -Bibliothek ist das Kopieren von ganzen Spalten zwischen zwei Datenrahmen mit unterschiedlichen Strukturen ein häufiges Problem. Angenommen, wir haben zwei Daten ...

Können Python -Parameteranmerkungen Zeichenfolgen verwenden? Können Python -Parameteranmerkungen Zeichenfolgen verwenden? Apr 01, 2025 pm 08:39 PM

Alternative Verwendung von Python -Parameteranmerkungen in der Python -Programmierung, Parameteranmerkungen sind eine sehr nützliche Funktion, die den Entwicklern helfen kann, Funktionen besser zu verstehen und zu verwenden ...

Python Cross-Platform Desktop-Anwendungsentwicklung: Welche GUI-Bibliothek ist die beste für Sie? Python Cross-Platform Desktop-Anwendungsentwicklung: Welche GUI-Bibliothek ist die beste für Sie? Apr 01, 2025 pm 05:24 PM

Auswahl der Python-plattformübergreifenden Desktop-Anwendungsentwicklungsbibliothek Viele Python-Entwickler möchten Desktop-Anwendungen entwickeln, die sowohl auf Windows- als auch auf Linux-Systemen ausgeführt werden können ...

Wie lösten Python -Skripte an einem bestimmten Ort die Ausgabe in Cursorposition? Wie lösten Python -Skripte an einem bestimmten Ort die Ausgabe in Cursorposition? Apr 01, 2025 pm 11:30 PM

Wie lösten Python -Skripte an einem bestimmten Ort die Ausgabe in Cursorposition? Beim Schreiben von Python -Skripten ist es üblich, die vorherige Ausgabe an die Cursorposition zu löschen ...

Warum kann mein Code nicht die von der API zurückgegebenen Daten erhalten? Wie löst ich dieses Problem? Warum kann mein Code nicht die von der API zurückgegebenen Daten erhalten? Wie löst ich dieses Problem? Apr 01, 2025 pm 08:09 PM

Warum kann mein Code nicht die von der API zurückgegebenen Daten erhalten? Bei der Programmierung stoßen wir häufig auf das Problem der Rückgabe von Nullwerten, wenn API aufruft, was nicht nur verwirrend ist ...

Wie hört Uvicorn kontinuierlich auf HTTP -Anfragen ohne Serving_forver () an? Wie hört Uvicorn kontinuierlich auf HTTP -Anfragen ohne Serving_forver () an? Apr 01, 2025 pm 10:51 PM

Wie hört Uvicorn kontinuierlich auf HTTP -Anfragen an? Uvicorn ist ein leichter Webserver, der auf ASGI basiert. Eine seiner Kernfunktionen ist es, auf HTTP -Anfragen zu hören und weiterzumachen ...

Wie erstelle ich dynamisch ein Objekt über eine Zeichenfolge und rufe seine Methoden in Python auf? Wie erstelle ich dynamisch ein Objekt über eine Zeichenfolge und rufe seine Methoden in Python auf? Apr 01, 2025 pm 11:18 PM

Wie erstellt in Python ein Objekt dynamisch über eine Zeichenfolge und ruft seine Methoden auf? Dies ist eine häufige Programmieranforderung, insbesondere wenn sie konfiguriert oder ausgeführt werden muss ...

Python Hourglass Graph Drawing: Wie vermeiden Sie variable undefinierte Fehler? Python Hourglass Graph Drawing: Wie vermeiden Sie variable undefinierte Fehler? Apr 01, 2025 pm 06:27 PM

Erste Schritte mit Python: Hourglas -Grafikzeichnung und Eingabeüberprüfung In diesem Artikel wird das Problem der Variablendefinition gelöst, das von einem Python -Anfänger im Hourglass -Grafikzeichnungsprogramm auftritt. Code...

See all articles