Tri de base en Python

J'ai écrit une sorte de base pour étudier Python et les algorithmes. Je continuerai d'en ajouter si j'en ai envie.

Tri de sélection

def sSort(a):
    for i in range(len(a)-1):
        mi = a[i:].index(min(a[i:]))
        a[i], a[i+mi] = a[i+mi], a[i]
    
    return a

Tri à bulles

def bSort(a):
    for i in range(len(a)):
        for j in range(len(a)-1, i, -1):
            if a[j] < a[j-1]:
                a[j], a[j-1] = a[j-1], a[j]
            
    return a

Tri par insertion

def iSort(a):
    for i in range(1, len(a)):
        for j in range(i, 0, -1):
            if a[j] >= a[j-1]:
                break
            else:
                a[j], a[j-1] = a[j-1], a[j]
    
    return a

Tri rapide

def qSort(a):
    if len(a) in (0, 1):
        return a
    
    p = a[-1]
    l = [x for x in a[:-1] if x <= p]
    r = [x for x in a[:-1] if x >  p]

    return qSort(l) + [p] + qSort(r)

Tri par fusion

def merge(l, r):
    n = len(l + r) #Taille du tableau après la fusion
    s = max(l + r) + 1 #Garde

    l.append(s)
    r.append(s)

    a = []
    while len(a) < n:
        a.append(l.pop(0)) if l[0] <= r[0] else a.append(r.pop(0))
    
    return a

def mSort(a):
    if len(a) == 1:
        return a

    mid = len(a) // 2
    l = mSort(a[:mid])
    r = mSort(a[mid:])
    
    return merge(l, r)

Recommended Posts

Tri de base en Python
Refactoring appris avec Python (Basic)
Techniques de tri en Python
Algorithme de tri et implémentation en Python
Scraping avec Selenium en Python (Basic)
[Python] Connaissances de base utilisées dans AtCoder
Implémentation du tri original en Python
Quadtree en Python --2
Python en optimisation
CURL en Python
Métaprogrammation avec Python
Python 3.3 avec Anaconda
SendKeys en Python
Méta-analyse en Python
Unittest en Python
Époque en Python
Discord en Python
Allemand en Python
DCI en Python
tri rapide en python
nCr en python
Écriture de base Python
N-Gram en Python
Programmation avec Python
Plink en Python
Constante en Python
FizzBuzz en Python
Sqlite en Python
Étape AIC en Python
Grammaire de base Python3
LINE-Bot [0] en Python
CSV en Python
Assemblage inversé avec Python
Réflexion en Python
RF Python Basic_02
Constante en Python
nCr en Python.
format en python
Scons en Python 3
Puyopuyo en python
python dans virtualenv
PPAP en Python
Quad-tree en Python
Réflexion en Python
Chimie avec Python
Hashable en Python
DirectLiNGAM en Python
LiNGAM en Python
Aplatir en Python
Aplatir en python
Liste triée en Python
AtCoder # 36 quotidien avec Python
Texte de cluster en Python
AtCoder # 2 tous les jours avec Python
Daily AtCoder # 32 en Python
Daily AtCoder # 6 en Python
Daily AtCoder # 18 en Python