Escreva um programa para converter a string de entrada em um array unidimensional e classificar o array usando classificação por seleção.
A ideia é a seguinte:
Clique no botão "Gerar número aleatório" para criar um objeto de número aleatório;
Use o método setText() de JTextArea para limpar a área de texto;
Crie uma matriz unidimensional de inteiros e aloque espaço com comprimento de 10;
Inicialize os elementos do array, use o método nextInt() da classe Random para gerar um número aleatório dentro de 50 e use o método append() da classe JTextArea para exibir os elementos do array no controle do campo de texto;
Clique no botão “Classificar” e use o método setText() da classe JTextArea para limpar a área de texto;
Use um loop for de camada dupla para classificar cada passagem do segundo elemento ao último elemento, percorrer os elementos envolvidos na classificação e encontrar o subscrito da matriz correspondente ao valor máximo;
Troque os dois números na posição array.length-i e index (valor máximo) para que o valor máximo encontrado após cada classificação fique no final do array envolvido naquela classificação;
Use um loop for para percorrer o array e use o método append da classe Random para exibir os elementos classificados do array no campo de texto.
O código é o seguinte:
Copie o código do código da seguinte forma:
importar java.awt.EventQueue;
importar java.awt.GridBagConstraints;
importar java.awt.GridBagLayout;
importar java.awt.Insets;
importar java.awt.event.ActionEvent;
importar java.awt.event.ActionListener;
importar java.util.Random;
importar javax.swing.JButton;
importar javax.swing.JFrame;
importar javax.swing.JPanel;
importar javax.swing.JScrollPane;
importar javax.swing.JTextArea;
importar javax.swing.border.EmptyBorder;
classe pública SelectSort estende JFrame {
/**
*
*/
privado estático final longo serialVersionUID = 6824538613659403529L;
painel de conteúdo JPanel privado;
/**
* Inicie o aplicativo.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
execução void pública() {
tentar {
Quadro SelectSort = new SelectSort();
frame.setVisible (verdadeiro);
} catch (Exceção e) {
e.printStackTrace();
}
}
});
}
/**
* Crie o quadro.
*/
public SelectSort() {
setTitle("Classifique o array usando ordenação por seleção");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new VazioBorder(5, 5, 5, 5));
setContentPane(contentPane);
GridBagLayout gbl_contentPane = new GridBagLayout();
gbl_contentPane.columnWidths = new int[] { 0, 0 };
gbl_contentPane.rowHeights = novo int[] { 0, 0, 0, 0, 0 };
gbl_contentPane.columnWeights = new double[] { 1.0, Double.MIN_VALUE };
gbl_contentPane.rowWeights = novo duplo[] { 1,0, 0,0, 1,0, 0,0,
Duplo.MIN_VALUE };
contentPane.setLayout(gbl_contentPane);
JScrollPane scrollPane = novo JScrollPane();
GridBagConstraints gbc_scrollPane = new GridBagConstraints();
gbc_scrollPane.insets = novas inserções (0, 0, 5, 0);
gbc_scrollPane.fill = GridBagConstraints.BOTH;
gbc_scrollPane.gridx = 0;
gbc_scrollPane.gridy = 0;
contentPane.add(scrollPane, gbc_scrollPane);
textArea1 = new JTextArea();
scrollPane.setViewportView(textArea1);
Botão JButton = new JButton("Gerar números aleatórios");
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
do_button_actionPerformed(e);
}
});
GridBagConstraints gbc_button = new GridBagConstraints();
gbc_button.insets = novas inserções (0, 0, 5, 0);
gbc_button.gridx = 0;
gbc_button.gridy = 1;
contentPane.add (botão, gbc_button);
JScrollPane scrollPane_1 = novo JScrollPane();
GridBagConstraints gbc_scrollPane_1 = new GridBagConstraints();
gbc_scrollPane_1.insets = novas inserções (0, 0, 5, 0);
gbc_scrollPane_1.fill = GridBagConstraints.BOTH;
gbc_scrollPane_1.gridx = 0;
gbc_scrollPane_1.gridy = 2;
contentPane.add(scrollPane_1, gbc_scrollPane_1);
textArea2 = new JTextArea();
scrollPane_1.setViewportView(textArea2);
JButton button_1 = new JButton("Classificar");
button_1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
do_button_1_actionPerformed(e);
}
});
GridBagConstraints gbc_button_1 = new GridBagConstraints();
gbc_button_1.gridx = 0;
gbc_button_1.gridy = 3;
contentPane.add(botão_1, gbc_button_1);
}
matriz privada int[] = new int[10];
private JTextArea textArea1;
private JTextArea textArea2;
void protegido do_button_actionPerformed(ActionEvent e) {
Random random = new Random(); //Cria um objeto de número aleatório
textArea1.setText(""); //Limpa a área de texto
for (int i = 0; i < array.length; i++) {//Inicializar elementos do array
array[i] = random.nextInt(50);//Gera um número aleatório dentro de 50
textArea1.append(array[i]+" ");// Exibe os elementos do array no controle da área de texto
}
}
void protegido do_button_1_actionPerformed(ActionEvent e) {
textArea2.setText(""); //Limpa a área de texto
índice interno;
for (int i = 1; i < array.comprimento; i++) {
índice = 0;
for (int j = 1; j <= array.length - i; j++) {
if (matriz[j] > matriz[índice]) {
índice = j; // Encontre o valor máximo
}
}
//Troca os dois números na posição array.length-i e índice (valor máximo)
int temp = array[array.length - i];
array[array.length - i] = array[índice];
matriz[índice] = temp;
}
for (int i = 0; i < array.comprimento; i++) {
textArea2.append(array[i] + " ");//Exibe os elementos classificados do array na área de texto
}
}
}
O efeito é mostrado na figura: