Écrivez un programme pour convertir la chaîne d'entrée en un tableau unidimensionnel et trier le tableau à l'aide du tri par sélection.
L'idée est la suivante :
Cliquez sur le bouton « Générer un nombre aléatoire » pour créer un objet Nombre aléatoire ;
Utilisez la méthode setText() de JTextArea pour effacer la zone de texte ;
Créez un tableau unidimensionnel d'entiers et allouez un espace d'une longueur de 10 ;
Initialisez les éléments du tableau, utilisez la méthode nextInt() de la classe Random pour générer un nombre aléatoire compris entre 50 et utilisez la méthode append() de la classe JTextArea pour afficher les éléments du tableau dans le contrôle du champ de texte ;
Cliquez sur le bouton « Trier » et utilisez la méthode setText() de la classe JTextArea pour effacer la zone de texte ;
Utilisez une boucle for double couche pour trier chaque passage du deuxième élément au dernier élément, parcourir les éléments impliqués dans le tri et trouver l'indice du tableau correspondant à la valeur maximale ;
Échangez les deux nombres à la position array.length-i et index (valeur maximale) afin que la valeur maximale trouvée après chaque tri se trouve à la fin du tableau impliqué dans ce tri ;
Utilisez une boucle for pour parcourir le tableau et utilisez la méthode append de la classe Random pour afficher les éléments du tableau triés dans le champ de texte.
Le code est le suivant :
Copiez le code comme suit :
importer java.awt.EventQueue ;
importer java.awt.GridBagConstraints ;
importer java.awt.GridBagLayout ;
importer java.awt.Insets ;
importer java.awt.event.ActionEvent ;
importer java.awt.event.ActionListener ;
importer java.util.Random ;
importer javax.swing.JButton ;
importer javax.swing.JFrame ;
importer javax.swing.JPanel ;
importer javax.swing.JScrollPane ;
importer javax.swing.JTextArea ;
importer javax.swing.border.EmptyBorder ;
la classe publique SelectSort étend JFrame {
/**
*
*/
privé statique final long serialVersionUID = 6824538613659403529L ;
contentPane privé de JPanel ;
/**
* Lancez l'application.
*/
public static void main (String[] arguments) {
EventQueue.invokeLater(new Runnable() {
public void run() {
essayer {
Cadre SelectSort = new SelectSort();
frame.setVisible(true);
} attraper (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Créez le cadre.
*/
public SelectSort() {
setTitle("Trier le tableau en utilisant le tri par sélection");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(nouveau EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
GridBagLayout gbl_contentPane = new GridBagLayout();
gbl_contentPane.columnWidths = new int[] { 0, 0 };
gbl_contentPane.rowHeights = new int[] { 0, 0, 0, 0, 0 };
gbl_contentPane.columnWeights = new double[] { 1.0, Double.MIN_VALUE };
gbl_contentPane.rowWeights = nouveau double[] { 1.0, 0.0, 1.0, 0.0,
Double.MIN_VALUE };
contentPane.setLayout(gbl_contentPane);
JScrollPane scrollPane = new JScrollPane();
GridBagConstraints gbc_scrollPane = new GridBagConstraints();
gbc_scrollPane.insets = new Insets(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);
Bouton JButton = new JButton("Générer des nombres aléatoires");
bouton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
do_button_actionPerformed(e);
}
});
GridBagConstraints gbc_button = new GridBagConstraints();
gbc_button.insets = nouveaux inserts (0, 0, 5, 0);
gbc_button.gridx = 0;
gbc_button.gridy = 1;
contentPane.add(bouton, gbc_button);
JScrollPane scrollPane_1 = new JScrollPane();
GridBagConstraints gbc_scrollPane_1 = new GridBagConstraints();
gbc_scrollPane_1.insets = new Insets(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 bouton_1 = new JButton("Trier");
bouton_1.addActionListener(nouveau 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(button_1, gbc_button_1);
}
tableau privé int[] = nouveau int[10];
privé JTextArea textArea1 ;
privé JTextArea textArea2 ;
protected void do_button_actionPerformed(ActionEvent e) {
Random random = new Random();//Créer un objet nombre aléatoire
textArea1.setText("");//Effacer la zone de texte
for (int i = 0; i < array.length; i++) {//Initialiser les éléments du tableau
array[i] = random.nextInt(50);//Générer un nombre aléatoire dans les 50
textArea1.append(array[i]+" ");// Afficher les éléments du tableau dans le contrôle de zone de texte
}
}
protected void do_button_1_actionPerformed(ActionEvent e) {
textArea2.setText("");//Effacer la zone de texte
indice int ;
pour (int i = 1; i < array.length; i++) {
indice = 0 ;
pour (int j = 1; j <= array.length - i; j++) {
si (tableau[j] > tableau[index]) {
index = j; // Trouver la valeur maximale
}
}
//Échangez les deux nombres à la position array.length-i et index (valeur maximale)
int temp = array[array.length - i];
array[array.length - i] = array[index];
tableau[index] = temp;
}
pour (int i = 0; i < array.length; i++) {
textArea2.append(array[i] + " ");//Afficher les éléments du tableau triés dans la zone de texte
}
}
}
L'effet est comme le montre la figure :