[Python] Versuchen Sie, selbst ein Sortierprogramm zu erstellen. (Selektive Sortierung, Sortierung einfügen, Blasensortierung)

[Python] Versuchen Sie, selbst ein Sortierprogramm zu erstellen. (Selektive Sortierung, Sortierung einfügen, Blasensortierung)

  1. [Selektive Sortierung](#Selektive Sortierung)
  2. [Sortierung einfügen](# Sortierung einfügen)
  3. [Blasensortierung](# Blasensortierung)

Selektive Sortierung

Suchen Sie den Mindestwert und ersetzen Sie ihn durch das erste Element.

Bei der eigentlichen Verarbeitung müssen mehrere Ideen kombiniert werden. (1) Finden Sie den Mindestwert (2) Ersetzen Sie den Mindestwert durch den ersten Wert (3) Wiederholen Sie (1) und (2) in einem Wert, dessen Anfang nicht festgelegt ist


Selektive Sortierung


def min_init(arr, x):
  min = x
  for i in range(x, len(arr)):
    if arr[min] > arr[i]:
      arr[i], arr[min] = arr[min], arr[i]

def min_sort(arr):
  for j in range(0, len(arr)-1):
    min_init(arr, j)
  print(arr)

Ausführungsbeispiel


a = [2,4,5,3,10,1,8,6]
min_sort(a)

#[1, 2, 3, 4, 5, 6, 8, 10]

Denkweise

(1) Finden Sie den Mindestwert

Betrachten Sie zunächst die Formel zum Ermitteln des Mindestwerts. Der Anfangswert von min wird auf 0 gesetzt und mit den folgenden numerischen Werten verglichen. Tauschen Sie min, wenn die nächste Zahl klein ist

python


#Finden Sie den Mindestwert
def min_val(arr):
  min = 0
  for i in range(1, len(arr)):
    if arr[min] > arr[i]:
      min = i
  print(a[min])


#Bestätigung
a = [2,4,5,3,10,1,8,6,3,2]
min_val(a)

#1

(2) Ersetzen Sie den Mindestwert durch den ersten Wert

Durch Anwenden des obigen Programms zum Finden des Minimalwerts wird der Wert mit dem ersten Wert ausgetauscht, wenn der Minimalwert gefunden wird.

Suchen Sie schließlich das Array, dessen Mindestwert an erster Stelle steht.

python


#Suchen Sie den Mindestwert und gehen Sie zum Anfang des Arrays
def min_first(arr):
  min = 0
  for i in range(1, len(arr)):
    if arr[min] > arr[i]:
      arr[i], arr[min] = arr[min], arr[i]
  print(a)


#Bestätigung
a = [2,4,5,3,10,1,8,6]
min_first(a)

#[1, 4, 5, 3, 10, 2, 8, 6]

(3) Wiederholen Sie (1) und (2) in einem Wert, dessen Anfang nicht festgelegt ist

Der Vorgang wird wiederholt, indem das Obige angewendet wird. Beachten Sie, dass der Anfangswert von min als Variable verwendet wird. Auf diese Weise verschiebt sich der Vergleichszielbereich nacheinander rückwärts.

Wenn es auf einen konstanten Wert eingestellt ist, wird es immer mit demselben Wert verglichen und die Zielausgabe wird nicht erhalten.

python


def min_init(arr, x):
  min = x
  for i in range(x, len(arr)):
    if arr[min] > arr[i]:
      arr[i], arr[min] = arr[min], arr[i]

def min_sort(arr):
  for j in range(0, len(arr)-1):
    min_init(arr, j)
  print(arr)

#Bestätigung
a = [2,4,5,3,10,1,8,6]
min_sort(a)

#[1, 2, 3, 4, 5, 6, 8, 10]

## Sortierung einfügen So bestimmen Sie, wo die nächste Nummer hinzugefügt werden soll, vorausgesetzt, der Anfang wurde sortiert.

-Vergleichen Sie den unsortierten ersten Wert mit dem vorherigen Wert -Wenn der unsortierte Wert kleiner ist, wird der unsortierte Wert mit einem größeren Wert überschrieben. (Unsortierte Werte werden als Variablen gespeichert) ・ Bestätigen Sie, wenn der unsortierte größer wird

python


def insert_sort(arr):
  for i in range(1,len(arr)):
    tmp = arr[i]  #Unsortiertes Top
    j = i -1   #Zuletzt sortiert (eine vor unsortiert)
    
    #Vergleichen Sie die Elemente und wenn tmp kleiner ist, j+Ersetzen Sie den Wert 1
    while arr[j] > tmp and j >= 0:
      arr[j+1] = arr[j]
      j -= 1

    #Wenn tmp größer ist, j+Bestätige 1 mit tmp
    arr[j+1] = tmp

Bestätigung


a = [2,4,5,3,10,1,8,6]
insert_sort(a)
print(a)

#[1, 2, 3, 4, 5, 6, 8, 10]

Was ist tmp?

Variable. Wird verwendet, um temporäre Variablen anzugeben, deren Werte nacheinander hinzugefügt oder entfernt werden. Abkürzung für vorübergehend.


## Blasensorte Vergleichen und tauschen Sie benachbarte Elemente von hinten aus.

Wenn die ersten beiden verglichen werden, ist die erste fest. Wiederholen Sie den gleichen Vorgang für die übrigen Elemente.

Als Verarbeitungsablauf (1) Vergleichen Sie den letzten Wert mit dem benachbarten Wert und ersetzen Sie ihn, falls er kleiner ist. (2) Wiederholen Sie die Arbeit von (1). Der Anfang ist einmal festgelegt.

python


def bubble_sort(arrs):
  for j in range(0, len(arrs)):
    exchange(arrs, j)

def exchange(arr, j):
  for i in range(len(arr)-1, j, -1):
    if arr[i-1] > arr[i]:
      arr[i-1], arr[i] = arr[i], arr[i-1]
#Bestätigung
a = [2,4,5,3,10,1,8,6]
bubble_sort(a)
print(a)

#[1, 2, 3, 4, 5, 6, 8, 10]

** ▼ (Referenz) Benachbarte Werte vergleichen und austauschen **

python


#Bewegen Sie kleine Zahlen vorwärts
def exchange(arr):
  for i in range(len(arr)-1, 0, -1):
    if arr[i-1] > arr[i]:
      arr[i-1], arr[i] = arr[i], arr[i-1]
  print(arr)


#Bestätigung
a=[8,2,6,1]
exchange(a)

#[1, 8, 2, 6]

Recommended Posts

[Python] Versuchen Sie, selbst ein Sortierprogramm zu erstellen. (Selektive Sortierung, Sortierung einfügen, Blasensortierung)
Ich habe versucht, die Blasensortierung nach Sprache zu programmieren
Versuchen Sie, in Python einen "Entschlüsselungs" -Code zu erstellen
Versuchen Sie, mit Python eine Diedergruppe zu bilden
Versuchen Sie, ein Python-Modul in C-Sprache zu erstellen
Lassen Sie uns ein Befehls-Standby-Tool mit Python erstellen
Blasensortierung, Sortierung auswählen, Sortierung einfügen, Shell sortieren, Sortierung zusammenführen, schnelle Sortierung, Sortierung zählen (Python)
[Python] So erstellen Sie eine Liste von Zeichenfolgen Zeichen für Zeichen
Antwort auf AtCoder Beginners Selection von Python3
[Python] Wie man eine Klasse iterierbar macht
Versuchen Sie, mit Python (2) eine Erfassungssoftware zu erstellen, die so genau wie möglich ist.
[Ev3dev] Lassen Sie uns ein Fernsteuerungsprogramm von Python mit dem RPyC-Protokoll erstellen
Sortieren durch Angabe einer Spalte im Python Numpy-Array.
Berechnen wir das statistische Problem mit Python
Versuchen Sie, mit Python eine Lebenskurve zu zeichnen
Ich möchte ein Spiel mit Python machen
[Python] So sortieren Sie nach dem N-ten M-ten Element eines mehrdimensionalen Arrays
WEB Scraping mit Python und versuchen, aus Bewertungen eine Wortwolke zu machen
[Python] So sortieren Sie Instanzen nach Instanzvariablen
Ich habe versucht, eine selektive Sortierung in Python zu implementieren
Lark grundlegende Erklärung (machen Sie einen Shell-ähnlichen Kerl mit Python, Lark)
Versuchen Sie, eine Blackjack-Strategie zu entwickeln, indem Sie das Lernen stärken (② Registrieren Sie die Umgebung im Fitnessstudio).
Machen wir einen Sprung in die Fertigungsindustrie, indem wir zusätzlich zu Python das Web nutzen
(Python) Versuchen Sie, eine Webanwendung mit Django zu entwickeln
So erstellen Sie ein Python-Paket mit VS Code
[Python] Ich möchte aus einer verschachtelten Liste einen Taple machen
Anfänger des maschinellen Lernens versuchen, einen Entscheidungsbaum zu erstellen
So speichern Sie eine von Python gekratzte Tabelle in CSV
Blasensortierung in Python
Versuchen Sie, eine Blackjack-Strategie zu entwickeln, indem Sie das Lernen stärken (③ Stärkung des Lernens in Ihrer eigenen OpenAI Gym-Umgebung).
Versuchen Sie es mit GUI, PyQt in Python
So führen Sie ein Python-Programm in einem Shell-Skript aus
Ich habe schnell ein Programm geschrieben, um DI mit Python zu lernen
Schreiben Sie ein Python-Programm, um die Bearbeitungsentfernung [Python] [Levenshtein-Entfernung] zu ermitteln.
Experimentieren Sie mit Python, um ein PDF für Selbstversorger für Kindle zu erstellen
[Python] Ein Programm, das durch Kombinieren von Ganzzahlen ein zweidimensionales Array erstellt
Versuchen Sie, ein Unterfenster mit PyQt5 und Python zu öffnen
[Python] Versuchen Sie, Ramen-Shops durch Verarbeitung natürlicher Sprache zu klassifizieren
Ich habe versucht, eine zufällige FizzBuzz-Spalte mit Blasensortierung zu sortieren.
Ich habe eine Stoppuhr mit tkinter mit Python gemacht
So überschreiben Sie eine benutzerdefinierte Typmethode, die von Python Swig generiert wird
[Einführung in Tensorflow] Verstehen Sie Tensorflow richtig und versuchen Sie, ein Modell zu erstellen
Ich möchte eine schöne Ergänzung zu input () in Python hinzufügen
Versuchen Sie einfach, einen Webhook mit ngrok und Python zu erhalten
[Python] Ich habe versucht, mit argparse ein einfaches Programm zu erstellen, das in der Befehlszeile funktioniert
Ein Weg zum mittleren Python
Newcomer Trainingsprogramm von Python
Versuchen Sie, Python selbst zu verstehen
Erstellen Sie ein Lesezeichen in Python
Machen Sie eine Lotterie mit Python
Python-Anfänger organisieren Blasensorten
Versuchen Sie, eine Sprache auszuwählen
Sortieren nach Datum in Python
[5.] Ich habe versucht, mit Python ein bestimmtes Authenticator-ähnliches Tool zu erstellen
Starten eines mit Jupyter Notebook erstellten Python-Programms
Schließen Sie sich csv an, das von Python-Pandas normalisiert wurde, um die Überprüfung zu vereinfachen
Rubyist hat versucht, eine einfache API mit Python + Flasche + MySQL zu erstellen
[2nd] Ich habe versucht, mit Python ein bestimmtes Authenticator-ähnliches Tool zu erstellen