Lösen der Einführung von AOJ in Algorithmen und Datenstrukturen in Python -Part2-

Einführung

Hallo. Es ist zäh und zäh. Wir werden die Einführung in die Algorithmen und Datenstrukturen von AOJ lösen. Es ist einfach, aufzuzeichnen, was Sie gelernt haben.

Es ist weniger als ein halbes Jahr her, seit ich anfing, mich selbst mit dem Programmieren zu beschäftigen AtCoder ist grün, also bin ich kein starker Mann. Lass uns hart zusammenarbeiten.

Kyapee

Inhaltsverzeichnis

Diesmal ist es TEIL 2: Elementare Sortierung. Ich möchte mein Bestes geben und es bis zum Ende tun.

ALDS1_2_A: Blasensortierung ALDS1_2_B: Selektive Sortierung ALDS1_2_C: Stabile Sortierung ALDS1_2_D: Shell-Sortierung

ALDS1_2_A: Blasensortierung

Blasensorte

def bubbleSort(A, N):
    bit = True
    i = 0
    count = 0
    while bit:
        bit = False
        for j in range(n-1,i,-1):
            if A[j] < A[j-1]:
                A[j],A[j-1] = A[j-1],A[j]
                count += 1
                bit = True
    
    return A , count
        

n = int(input())
A = list(map(int,input().split()))

A,count = bubbleSort(A,n)
print(*A)
print(count)

ALDS1_2_B: Selektive Sortierung

 def SelectionSort(A,n):
    count = 0
    for i in range(n):
        minv = i
        for j in range(i,n):
            if A[j] < A[minv]:
                minv = j
        
        A[i],A[minv] = A[minv],A[i]
        if i!=minv:
            count += 1

    return A,count

n = int(input())
A = list(map(int,input().split()))

A1,count1 = SelectionSort(A,n)

print(*A1)
print(count1)

ALDS1_2_C: Stabile Sortierung

Als Tupel speichern, um die ursprüngliche Liste nicht zu ändern Die Beurteilung der Stabilität ist ein exploratives Denken

def bubbleSort(A, N):
    A = list(A)
    bit = True
    i = 0
    while bit:
        bit = False
        for j in range(n-1,i,-1):
            if int(A[j][1]) < int(A[j-1][1]):
                A[j],A[j-1] = A[j-1],A[j]
                bit = True
    
    return A 

def SelectionSort(A,n):
    A = list(A)
    for i in range(n):
        minv = i
        for j in range(i,n):
            if int(A[j][1]) < int(A[minv][1]):
                minv = j
        
        A[i],A[minv] = A[minv],A[i]

    return A

def is_stable(A_in, A_out):
    n = len(A_in)
    for i in range(n):
        for j in range(i+1,n):
            for a in range(n):
                for b in range(a+1,n):
                    if A_in[i][1] == A_in[j][1] and A_in[i]==A_out[b] and A_in[j]==A_out[a]:
                        return "Not stable"
    return "Stable"

n = int(input())
A = list(input().split())
A_ans = tuple(A)

A1 = bubbleSort(A_ans,n)
print(*A1)
print(is_stable(A_ans, A1))

A2 = SelectionSort(A_ans,n)
print(*A2)
print(is_stable(A_ans, A2))

ALDS1_2_D: Shell-Sortierung

Es ist schwierig ...



def insertionSort(A,n,g):
    global count
    for i in range(g, n):
        v = A[i]
        j = i - g
        while j >= 0 and A[j]>v:
            A[j+g] = A[j]
            j -= g
            count += 1
        A[j+g] = v



def ShellSort(A, n):
    global count
    count = 0
    g = 1
    G = [g]
    while 3 * g + 1 < n:
        g = 3 * g + 1
        G.append(g)
    m = len(G)
    G = G[::-1]
    
    print(m)
    print(*G)

    for j in G:
        insertionSort(A,n,j)



n = int(input())
A = []
for i in range(n):
    a = int(input())
    A.append(a)

ShellSort(A, n)
print(count)

for i in A:
    print(i)

abschließend

Wenn Sie eine falsche Antwort haben, wenden Sie sich bitte an Goto

p.s.p Qitta Ich habe noch nie einen netten Kerl bekommen Wir freuen uns auf die ersten denkwürdigen Verwandten. ↑ Ich habe es das letzte Mal geschrieben, aber ich lobe es

Recommended Posts

Lösen der Einführung von AOJ in Algorithmen und Datenstrukturen in Python -Part1-
Lösen der Einführung von AOJ in Algorithmen und Datenstrukturen in Python -Part2-
Lösen der Einführung von AOJ in Algorithmen und Datenstrukturen in Python -Part4-
Lösen der Einführung von AOJ in Algorithmen und Datenstrukturen in Python -Part3-
[Einführung in cx_Oracle] (Teil 6) Zuordnung von DB- und Python-Datentypen
[Einführung in cx_Oracle] (Teil 9) Zuordnung von DB- und Python-Datentypen (Version 8 oder höher)
[Einführung in die Udemy Python3 + -Anwendung] 36. Verwendung von In und Not
[Einführung in Data Scientists] Grundlagen von Python ♬ Funktionen und Klassen
Einführung in die Effektüberprüfung Schreiben der Kapitel 4 und 5 in Python
Einführung in Python Scikit-Learn, Matplotlib, Single-Layer-Algorithmus (~ in Richtung B3 ~ Teil3)
[Einführung in Python] Kombinieren Sie Nikkei-Durchschnitts- und NY Dow-CSV-Daten
[Einführung in Python3 Tag 1] Programmierung und Python
Sortieralgorithmus und Implementierung in Python
Einführung in Python Hands On Teil 1
Hashing von Daten in R und Python
Lesen von Notizen (in Python und Stan) zur Einführung in die statistische Modellierung für die Datenanalyse (Midorimoto)
Verarbeitung zur Verwendung von notMNIST-Daten in Python (und versucht, sie zu klassifizieren)
[Einführung in Data Scientists] Grundlagen von Python ♬ Bedingte Verzweigung und Schleifen
[Einführung in Data Scientists] Grundlagen von Python ♬ Funktionen und anonyme Funktionen usw.
[Einführung in Python] Wie verwende ich eine Klasse in Python?
AM-Modulation und Demodulation mit Python Part 2
Ali Buch in Python: Abschnitt 2-4, Datenstruktur
Web-WF Python Tornado Teil 3 (Einführung in Openpyexcel)
[Einführung in Python3 Tag 19] Kapitel 8 Datenziele (8.4-8.5)
[Einführung in Python3 Tag 18] Kapitel 8 Datenziele (8.3.6.2 bis 8.3.6.3)
Zeichnen Sie Daten einfach in Shell und Python
Komprimieren Sie Python-Daten und schreiben Sie in SQLite
Verwendung ist und == in Python
"Einführung in die Datenanalyse durch statistische Bayes'sche Modellierung beginnend mit R und Stan" in Python implementiert
Einführung in Vektoren: Lineare Algebra in Python <1>
Einführung in die Überprüfung der Wirksamkeit Kapitel 1 in Python geschrieben
[Einführung in Data Scientist] Grundlagen von Python ♬
[Python] [Ergänzung] Kapitel 04-09 Verschiedene Datenstrukturen (Mengenlehre und Arithmetik in Mengen)
Datenanalyse: Einfache Anwendung deskriptiver Statistiken und Schätzungsstatistiken auf CSV-Daten in Python
Was ist ein Algorithmus? Einführung in den Suchalgorithmus] ~ Python ~
So generieren Sie eine Sequenz in Python und C ++
[Einführung in Python3 Tag 12] Kapitel 6 Objekte und Klassen (6.3-6.15)
Einführung in die Überprüfung der Wirksamkeit Kapitel 3 in Python geschrieben
Empfangen und Anzeigen von HTML-Formulardaten in Python
tse - Einführung in den Text Stream Editor in Python
[Python] Vertauschen von Zeilen und Spalten mit Numpy-Daten
[Python] Lesen von Daten aus CIFAR-10 und CIFAR-100
Geschrieben "Einführung in die Effektüberprüfung" in Python
[Einführung in Python3, Tag 22] Kapitel 11 Parallele Verarbeitung und Vernetzung (11.1 bis 11.3)
Senden Sie eine Nachricht an Skype und Chatwork in Python
[Einführung in Python] Umgang mit Daten im JSON-Format
[Einführung in die Udemy Python3 + -Anwendung] 64. Namespace und Gültigkeitsbereich
[Einführung in Python3 Tag 11] Kapitel 6 Objekte und Klassen (6.1-6.2)
[Einführung in den Algorithmus] Finden Sie den kürzesten Weg [Python3]
Einführung in die Überprüfung der Wirksamkeit Kapitel 2 in Python geschrieben
Zur Darstellung von Datum, Uhrzeit, Uhrzeit und Sekunden in Python
Wie man Autokorrelation und partielle Autokorrelation mit Python zeichnet
[Python] So benennen Sie Tabellendaten und geben sie mit csv aus (to_csv-Methode)
Einführung in die Zeitreihenanalyse ~ Saisonales Anpassungsmodell ~ In R und Python implementiert
[Einführung in die Udemy Python3 + -Anwendung] 35. Vergleichsoperatoren und logische Operatoren
Konvertieren Sie Datum und Uhrzeit in Zeitzonen in Unixtime in Python2.7
Zusammenfassung der Tools, die zum Analysieren von Daten in Python benötigt werden
Verarbeitung von CSV-Daten in voller und halber Breite in Python
[Einführung in die Stärkung des Lernens] Teil 1 - Epsilon-Greedy-Algorithmus im Banditenspiel
[Einführung in die Elementzerlegung] Lassen Sie uns Zeitreihenanalysemethoden in R und Python arrange anordnen
Unterschiede im Verhalten zwischen den Operatoren append () und "+ =" beim Hinzufügen von Daten zu einer Liste in Python