[Python] J'ai essayé d'implémenter un tri stable, alors notez

problème

Voir le site ci-dessous

Ma réponse

import collections

def chk_before_tranp_bigger(now, before):
    return int(before[1]) > int(now[1])


def is_stable(inputs: list, sort_: list) -> str:
    """
conditions
・ Cartes avec le même numéro
・ Identique à l'ordre dans lequel ils apparaissent dans l'entrée

Une fois, regroupez la liste des données d'entrée en utilisant des nombres comme touches
Exemple)
        {
            '4': ['H4', 'S4'],
            '9': ['C9'],
            '3': ['C3']
        }
    """
    judge = 'Not stable'
    loop = True
    set_num = collections.defaultdict(list)
    for input_ in inputs:
        set_num[input_[1]].append(input_)

    for g, dl in set_num.items():
        if len(dl) <= 1:
            continue
        min_index = -1
        for d in dl:
            if min_index > sort_.index(d):
                loop = False
                break
            min_index = sort_.index(d)
        if not loop:
            break
    else:
        judge = 'Stable'

    return judge


def bubble_sort(n: int, a: list) -> (list, str):
    dl = a.copy()
    for i in range(n):
        for j in range(n-1, i, -1):
            if chk_before_tranp_bigger(dl[j], dl[j-1]):
                dl[j], dl[j-1] = dl[j-1], dl[j]
    return dl, is_stable(a,  dl)


def selected_sort(n: int, a: list) -> (list, str):
    dl = a.copy()
    for i in range(n):
        mini = i
        for j in range(i, n):
            if chk_before_tranp_bigger(dl[j], dl[mini]):
                mini = j
        if mini != i:
            dl[i], dl[mini] = dl[mini], dl[i]

    return dl, is_stable(a, dl)


n = int(input())
a = input().split()

sort_, judge = bubble_sort(n, a)
print(*sort_)
print(judge)

sort_, judge = selected_sort(n, a)
print(*sort_)
print(judge)

Recommended Posts

[Python] J'ai essayé d'implémenter un tri stable, alors notez
J'ai essayé d'implémenter un pseudo pachislot en Python
J'ai essayé de trouver la différence entre A + = B et A = A + B en Python, alors notez
J'ai essayé d'implémenter un automate cellulaire unidimensionnel en Python
J'ai fait un chronomètre en utilisant tkinter avec python
Les débutants en Python ont créé un chat BOT alors j'ai essayé de résumer comment le faire
J'ai essayé d'implémenter PLSA en Python
J'ai essayé d'implémenter la permutation en Python
J'ai essayé d'implémenter PLSA dans Python 2
J'ai essayé d'implémenter ADALINE en Python
J'ai essayé d'implémenter PPO en Python
J'ai créé une API Web
[5e] J'ai essayé de créer un certain outil de type Authenticator avec python
[2nd] J'ai essayé de créer un certain outil de type Authenticator avec python
J'ai essayé de créer une expression régulière de "montant" en utilisant Python
J'ai essayé de créer une expression régulière de "temps" en utilisant Python
[3ème] J'ai essayé de créer un certain outil de type Authenticator avec python
J'ai essayé de créer une expression régulière de "date" en utilisant Python
J'ai essayé de mettre en œuvre un jeu de dilemme de prisonnier mal compris en Python
J'ai essayé de faire un processus d'exécution périodique avec Selenium et Python
J'ai essayé de créer une application de notification de publication à 2 canaux avec Python
J'ai essayé de créer une application todo en utilisant une bouteille avec python
[4th] J'ai essayé de créer un certain outil de type Authenticator avec python
[1er] J'ai essayé de créer un certain outil de type Authenticator avec python
Je veux faire un jeu avec Python
J'ai essayé d'implémenter TOPIC MODEL en Python
J'ai essayé d'implémenter le tri sélectif en python
J'ai créé un jeu ○ ✕ avec TensorFlow
J'ai essayé de faire un signal avec Raspeye 4 (édition Python)
Notes J'ai recherché la création d'outils de ligne de commande en Python
J'ai essayé d'implémenter le jeu de cartes de Trump en Python
J'étais accro à essayer Cython avec PyCharm, alors prenez note
J'ai essayé de faire un "putain de gros convertisseur de littérature"
J'ai essayé de faire un processus périodique avec CentOS7, Selenium, Python et Chrome
Je veux facilement implémenter le délai d'expiration en python
J'ai fait une application d'envoi de courrier simple avec tkinter de Python
J'ai essayé d'implémenter Mine Sweeper sur un terminal avec python
[Python] Deep Learning: J'ai essayé d'implémenter Deep Learning (DBN, SDA) sans utiliser de bibliothèque.
[Analyse des brevets] J'ai essayé de créer une carte des brevets avec Python sans dépenser d'argent
Suite ・ J'ai essayé de créer Slackbot après avoir étudié Python3
J'ai essayé d'implémenter PCANet
Je suis tombé sur l'utilisation de MoviePy, alors prenez note
J'ai essayé d'implémenter le poker de Drakue en Python
J'ai essayé d'implémenter le perceptron artificiel avec python
J'ai essayé d'implémenter GA (algorithme génétique) en Python
[Python] J'ai essayé de créer une IA Shiritori qui améliore le vocabulaire grâce aux batailles
[Python] Je veux faire d'une liste imbriquée un taple
J'ai essayé d'implémenter ce qui semble être un outil de snipper Windows avec Python
J'ai essayé d'implémenter StarGAN (1)
Notez que j'étais accro à la configuration de TensowFlow
J'ai essayé de faire une simulation de séparation de source sonore en temps réel avec l'apprentissage automatique Python
J'ai essayé d'implémenter une ligne moyenne mobile de volume avec Quantx
J'ai essayé de mettre en œuvre le modèle de base du réseau neuronal récurrent
J'ai essayé de créer diverses "données factices" avec Python faker
[Chaîne de Markov] J'ai essayé de lire les citations en Python.
J'ai essayé "Comment obtenir une méthode décorée en Python"
J'ai essayé d'implémenter la fonction d'envoi de courrier en Python