Classificação de inserção em C ++

Classificação de inserção em C ++
O tipo de inserção é um algoritmo ou abordagem de organização básica que opera da mesma maneira que você pode organizar decks de cartas em suas mãos. A variedade é separada em duas partes: uma que é ordenada e a outra que não é. Os itens do segmento não ordenado são designados e localizados no fragmento organizado na ordem correta. O tipo de inserção comparará os dois valores consecutivos entre si e essa metodologia é mais eficaz que o tipo de bolha e seleção, mas não tão rápido quanto classificar ou mesclar rapidamente.

Vamos começar com o lançamento do aplicativo Shell no Ubuntu 20.04 Sistema com Ctrl+Alt+T. Depois de lançá -lo, crie um arquivo C ++ na sua pasta doméstico através da instrução "Touch" mostrada na imagem. Nomeie o arquivo C ++ com a extensão "CC". Depois disso, abra seu arquivo em qualquer editor interno do Ubuntu 20.04 Sistema (I.e. GNU nano, texto ou vim).

Exemplo 1:

Vamos começar com o primeiro exemplo a usar o tipo de inserção para classificar uma matriz não ordenada aleatória em ordem crescente de números. Iniciamos nosso código com a inclusão dos “bits/stdc++.biblioteca padrão H ”. Em seguida, adicionamos o "espaço para nome" padrão de C ++ com a palavra curta "usando" e "std". A função “stat ()” usa a matriz “A” e seu tamanho “N” para classificar a matriz aleatória não ordenada em classificação por meio da técnica de classificação de inserção.

Declaramos uma variável inteira "chave" e o loop "for" está em andamento. Até que o loop esteja interagindo até o tamanho "n" de uma matriz, o valor em cada índice "i" da matriz "a" é salvo na variável "chave".

Inicialize outra variável "J" com o valor anterior do índice "i" i.e. “J = i -1”. Aí vem o while loop. Enquanto o índice anterior "j" é maior ou igual a 0 e o valor no índice "j" é maior que o valor na variável "chave" i.e. O valor no índice "i", continuará a adicionar o valor no índice "j" para indexar "j+1", que na verdade é 'eu ”. Junto com isso, o índice "j" diminuirá em 1 i.e. o anterior de "J" se tornará "j".

Após o tempo, o loop termina, o valor em "J+1" é atribuído com o valor "chave". eu.e. em "eu". Para deixá -lo mais claro, digamos se eu = 1 então j = 0. Portanto, se o valor em "J" for maior que "chave", trocaremos o valor em "J" com o próximo valor consecutivo.

Esta função é executada pela função principal () passando a matriz e seu tamanho específico nos parâmetros. O loop "for" é usado para iterar os valores da matriz do índice 0 para o último índice "N-1" de uma matriz. Em cada iteração, cada valor é exibido no shell usando o índice específico de uma matriz para uma iteração específica por meio da instrução Cout. A última declaração de cout é usada para colocar a linha final após a exibição de toda a matriz "A" na concha.

A execução deste código começa no método main (). Inicializamos uma matriz "A" do tipo inteiro com alguns valores de números aleatórios. Esta matriz ainda não foi classificada. Estamos recebendo o tamanho de uma matriz usando a variável "n" e aplicando a função sizeof () na matriz "a".

O objeto Cout é usado para informar ao usuário que o programa exibirá a matriz original não classificada na sua tela. A função "show" é chamada passando a matriz "a" e tamanho "n" para exibir a matriz ordenada aleatoriamente. A próxima declaração Cout é usada para informar que o programa exibirá a matriz classificada no shell através do uso de tipo de inserção.

O "Sort ()" é chamado passando por uma matriz ordenada "A" e seu tamanho. A função stor () classifica a matriz e a função show () exibe a matriz classificada atualizada "A" na tela do shell do nosso terminal Linux. O código geral agora está concluído aqui.

Após a compilação do nosso código, não temos erros. Nós executamos nosso código através do “./a.OUT ”Instrução mostrada abaixo. A matriz não classificada foi exibida e, em seguida, a matriz classificada está em uma ordem ascendente por meio do tipo de inserção.

Exemplo 2:

Vamos dar uma olhada em outro exemplo de tipo de inserção. Dentro deste exemplo, não usaremos nenhuma função de classificação definida pelo usuário para executar o tipo de inserção. Usaremos apenas a função principal () no código para executá -lo. Então, abrimos o mesmo arquivo de código e atualizamos o código. Adicione a biblioteca de fluxo de entrada e saída padrão C ++ com a palavra -chave "#include". O espaço para nome "padrão" é declarado usando a palavra -chave "usando".

Iniciamos a função principal () do tipo inteiro e inicializamos uma matriz inteira “a” do tamanho 10 com os 10 valores numéricos. Esses elementos de uma matriz “A” são colocados aleatoriamente, independentemente da ordem. A declaração cout é usada para afirmar que vamos exibir a lista antes de classificá -la. Depois disso, usamos o loop "for" para iterar os valores da matriz original não classificada "A" até o seu último elemento. Em cada iteração do loop "for", cada mesmo valor de índice da matriz "A" é exibido no shell através da instrução "Cout". Após esse loop "para", utilizamos outro loop "para" para executar a classificação de "inserção".

Este loop "for" é inicializado de "k = 0" para "k = 10". Enquanto o loop está se iterando de 0 a 10º índice de matriz "A", continuamos a atribuir o valor no índice "K" da matriz "A" para a nova variável inteira "Temp". Além disso, descobrimos o antecessor "J" do valor "K" usando o "K-1". O loop "while" está aqui para verificar se o índice do antecessor "J" é maior que 0 e o valor na variável "Temp" é menor ou igual ao valor do antecessor "J" de Array "A".

Se essa condição satisfar.e. "J+1". Junto com isso, continuamos a diminuir o índice antecessor I.e. Movendo -se na direção para trás. Após o fim, o loop termina, atribuímos o valor de "Temp" ao próximo predecessor "J". Depois que o loop "for" termina, exibimos a matriz classificada "A". Para isso, utilizamos a declaração "cout" no loop "for". O código está concluído aqui e está pronto para uso.

Compilamos o arquivo de código “Inserção.CC ”e executou o arquivo com o“./a.OUT ”instrução. A matriz aleatória não classificada é exibida primeiro. Depois disso, a matriz classificada através do tipo de inserção é exibida no final, conforme a saída abaixo.

Conclusão

Este artigo é tudo sobre o uso de classificação de inserção para classificar uma matriz aleatória em um programa C ++. Discutimos a maneira convencional de classificar a matriz com o tipo de inserção nos primeiros exemplos i.e. Uso de classificação, exibição e função do driver principal (). Depois disso, usamos o novo método para executar o tipo de inserção em uma única função de driver principal ().