Classificação de seleção de Java

Classificação de seleção de Java
O elemento mais baixo vem em primeiro lugar no tipo de seleção. Então, o nó inicial é trocado e repetimos para o resto da lista. O tipo de seleção em Java não requer mais espaço para classificar que envolve determinar repetidamente o menor elemento e trocá -lo com o que já está presente na posição adequada. Além disso, podemos determinar a complexidade do tipo de seleção contando o número de loops. Como o tipo de seleção usa dois loop, a complexidade do tempo é O (n2).

Exemplo 1:

A classificação de seleção itera sobre os elementos na matriz não classificada especificada. O elemento mínimo é selecionado e movido para o subarray classificado em cada iteração do tipo de seleção. O programa a seguir é usado para o tipo de seleção para classificar uma matriz em ordem crescente:

A classe "AscendingSelectionSort" é construída no programa Java, que é mencionado anteriormente. Esta classe é implementada com a função de "classificação" do vazio, onde a matriz inteira "MyArray" é passada um parâmetro. Dentro da função de "classificação", descalamos o objeto "ArraySize" para obter o tamanho da matriz do método de comprimento. Além disso, implantamos o método de loop for que itera o limite da matriz não classificada, uma de cada vez.

O próximo passo é desenvolver um objeto chamado "min" que localize o elemento de matriz não classificado com o menor valor. O outro loop for chamado para buscar a posição do índice do elemento mínimo da matriz. O loop forera de "i+1" para o último elemento de uma matriz. Em seguida, temos uma instrução IF para verificar se o "MyArray [J]" é menor que "MyArray [min]" ou não. Nesse caso, o índice mínimo será incrementado. Em seguida, aplicamos o algoritmo de troca, trocando o valor mínimo da matriz com o primeiro valor. Lá, temos outra função, o "PrintArray", que é estabelecido para imprimir a matriz classificada do tipo de seleção. Imprimos a matriz classificada iterando cada elemento da matriz através do loop for.

No final, testamos a implementação da classificação de seleção dentro do método main (). Aqui, definimos o objeto "OBJ" para a classe "AscendingSelectionSort" e também inicializamos a matriz "MyArray" com os elementos inteiros. Em seguida, usamos a função de "classificação" usando essa matriz como um parâmetro para classificar a matriz, que foi então impressa no console.

A técnica de classificação de seleção é usada para produzir a seguinte matriz que é classificada em ordem crescente:

Exemplo 2:

O tipo de seleção também pode ser usado para a matriz que não está predefinida. O usuário primeiro insere o tamanho da matriz. Então, ele entra no elemento dentro da matriz com a matriz especificada.

No programa anterior de Java, definimos a classe "UserDefinedSelectionSort". A classe é definida com a função "trocando" e pega a "x []", "i" e "j" como parâmetros. Os elementos da matriz são comparados primeiro e depois trocados com a variável "Temp". Depois disso, temos outra função - "UserDefinedSelectionSort" - onde a matriz "x []" e o tamanho do objeto são definidos como um parâmetro. Esta função é chamada com o malha aninhado. Primeiro atravessamos a matriz não classificada do primeiro índice para o último.

Em seguida, atravessamos a matriz não classificada de "i+1" para o último valor da matriz para obter o elemento mínimo da matriz não classificada e atualizar o índice mínimo. Depois disso, chamamos a função de "troca" de trocar o x [i] com o x [min_index]. Em seguida, temos um formulário de método main () onde pegamos a entrada do usuário criando o objeto de "entrada" e chamando o sistema no método. O objeto "S" indica o comprimento da matriz que usa o método nextInt () para ler o próximo token do valor de entrada pelo usuário. O comprimento da matriz é declarado dentro da matriz “x []” e depois obtido como o valor da matriz dentro do tamanho da matriz. A matriz inicial é exibida primeiro, depois a matriz classificada do método de classificação de seleção é atravessada e exibida.

Na compilação do código anterior, o terminal pediu pela primeira vez para inserir o tamanho da matriz. Depois de definir o tamanho da matriz, o usuário insere os elementos aleatórios. Então, o tipo de seleção é realizado. A matriz inicial não classificada e a matriz classificada por seleção são exibidas no seguinte:

Exemplo 3:

Em seguida, o tipo de seleção é feito na lista individual vinculada. A técnica envolve a troca do nó da lista vinculado, em vez dos dados dentro dos nós.

No programa anterior, temos uma classe Java "LinkedListSelectionSort", onde definimos outra classe, o "nó". A classe "nó" é declarada com o objeto "mydata" e o objeto do nó, "Next_Node". Em seguida, temos uma função "swapnodes" em que o nó atual "curr_n1" é trocado com outro nó atual "curr_n2" sem trocar os elementos do nó na lista vinculada. Primeiro, fizemos o "curr_n2" à frente e depois ajustamos os links. Depois disso, trocamos os nós com a variável temp.

Lá, temos outra função de "seleção" que usa a abordagem de classificação de seleção recursiva para classificar a lista vinculada. Descobrimos com a estatura if se a lista vinculada tem o nó. Em seguida, definimos o nó do ponteiro "Min_Node" para o valor mínimo dos dados e o ponteiro do nó "prev_min" para ter o valor de dados anterior do nó. O loop for alcança todos os nós da lista vinculada e incrementa o nó mínimo e o nó anterior. Em seguida, aplicamos a condição - se o min_node e o nó da cabeça forem diferentes, trocamos o min_node com o nó da cabeça. A lista vinculada restante é classificada recursivamente colocando a “cabeça.Next_Node ”na função SelectionSort.

Além disso, criamos a função "SortNodes", que verifica se a lista vinculada fornecida não deve estar vazia e classificar a lista através da função SelectionSort (). Em seguida, temos a próxima função que é "push" para adicionar um nó à posição inicial da lista vinculada. Definimos o objeto "NEWNODE" para alocar o nó e inserir os dados dentro desse nó. Depois disso, vinculamos a referência da cabeça ao novo nó e realocamos a referência da cabeça a um novo nó. Em seguida, criamos uma função "DisplayList" para imprimir a lista vinculada através do While Loop.

Temos um método principal () em que a lista vinculada é inicializada usando o método push. Os elementos de lista vinculados não classificados serão impressos. Em seguida, invocamos a função SortNodes () que leva o objeto da cabeça como um parâmetro para executar a operação de classificação de seleção. A lista vinculada classificada é impressa pelo método DisplayList () que também toma a "cabeça" como um argumento.

A lista vinculada original é exibida. Depois disso, a lista vinculada classificada é impressa no seguinte:

Conclusão

O tipo de seleção especifica essencialmente onde um elemento começa com os outros elementos. A classificação de seleção em Java é aplicada quando as pequenas listas precisam ser classificadas. Também afeta a taxa de escrita na memória, especialmente a memória flash. O conceito central de usar o tipo de seleção em Java é dividir uma matriz nas seções classificadas e não classificadas e depois classificar a matriz usando comparações. Os exemplos de classificação de seleção são demonstrados com o padrão e o outro caso.