Classificação de seleção de algoritmo Python

Da última vez que aprendemos a busca binária no algoritmo python, hoje continuaremos a aprender outro algoritmo comumente usado na classificação de seleção python

O princípio do armazenamento de dados no computador:

Como todos sabemos, o princípio de funcionamento da nossa memória é como os armários de armazenamento quando vamos ao shopping. Cada armário pode colocar apenas um item. Você tem dois itens para armazenar. Depois de armazenar os itens (colocar) no armário, você pode Vá às compras! Um computador é uma coleção de vários gabinetes, cada gabinete individual tem seu próprio endereço
. Quando precisamos armazenar vários dados, temos dois métodos básicos - array e lista vinculada

Array:

Vamos tomar nosso dia a dia como exemplo. Você e seus três bons amigos vão ao cinema juntos. Você precisa garantir que primeiro haja quatro assentos conectados e, em seguida, outro? Amigos, mas não há vagas dos dois lados, temos que encontrar mais cinco cadeiras que estão interligadas, ou deixar o estranho a seguir se afastar, o que é mais problemático, também podemos ocupar lugares com antecedência, vamos aproveitar Ninguém ocupa 10 lugares (embora isso seja imoral, não nos importamos por enquanto), desde que não tenhamos mais de 10 pessoas, podemos fazê-lo diretamente, mas se houver mais de 10 pessoas, temos que encontrar lugares novamente.
Do caso acima, podemos resumir várias vantagens e desvantagens do array:
1. Menos espaço de memória ocupado
2. Como nossos dados estão conectados, a velocidade de pesquisa é de apenas quatro palavras - Wuhu! ~~
3. A velocidade de inserção e exclusão é relativamente lenta. Quando inserimos novos dados no meio, os dados após o novo elemento devem ser movidos para trás, e a exclusão é a mesma (apenas para frente)
4. Endereço de memória Em termos de utilização, não importa quanto espaço você tenha na memória, se você não puder fornecer o espaço necessário para o array de uma vez, irá avisar que a memória é insuficiente
5. Se o espaço reservado estiver cheio, ele não pode ser expandido.

Lista ligada

Os elementos na lista vinculada podem existir em qualquer posição. Cada elemento na lista vinculada armazena o endereço do próximo elemento. Assim como o jogo de descriptografia que costumamos jogar, a primeira pista solicitará a localização da próxima pista, e a segunda irá Solicitar a terceira posição.
Vamos pegar a castanha acima como exemplo. Comparada com a matriz, a lista vinculada é como quando escolhemos os assentos, fazemos isso separadamente, então, desde que haja espaço de memória suficiente (assentos), pode continuar Está alocado para a lista ligada

As vantagens e desvantagens de matrizes e listas vinculadas:

Array:
Vantagens: fácil de usar, eficiente do que a lista de consulta, como uma região de memória contínua de
desvantagens: um tamanho fixo, não adequado para memória dinâmica, adicionar dinamicamente
lista conveniente :
vantagens: adicionar e excluir dinamicamente
desvantagens de tamanho variável : somente através de cis Acesso por ponteiro, baixa eficiência de consulta

Classificação de seleção:

Depois de compreender o conhecimento básico, estamos aqui para estudar formalmente os pontos-chave de hoje,
ou para dar uma lição: as músicas que geralmente ouvimos gravarão o número de vezes que ouvimos cada música, e queremos definir as músicas na lista de reprodução de acordo com o número de vezes que as ouvimos. Classifique mais com menos,
velhas regras e talento !!!

def kuaisubijiao(list):
    num = list[0]
    num_index = 0
    for i in range(1, len(list)):
        if num > list[i]:       # 通过比较得到最小的数字的下标索引
            num = list[i]
            num_index = i
    return num_index


def kuaisupaixu(list):
    new_list = []
    for i in range(1, len(list)):
        num = kuaisubijiao(list)
        new_list.append(list.pop(num))
    return new_list


print(kuaisupaixu([5, 9, 25, 4, 1, 3, 8]))

Acho que você gosta

Origin blog.csdn.net/Layfolk_XK/article/details/108245006
Recomendado
Clasificación