Schreiben Sie ein Programm, um die Eingabezeichenfolge in ein eindimensionales Array umzuwandeln und das Array mithilfe der Auswahlsortierung zu sortieren.
Die Idee ist wie folgt:
Klicken Sie auf die Schaltfläche „Zufallszahl generieren“, um ein Zufallszahlenobjekt zu erstellen.
Verwenden Sie die setText()-Methode von JTextArea, um den Textbereich zu löschen.
Erstellen Sie ein eindimensionales Array aus ganzen Zahlen und weisen Sie Platz mit einer Länge von 10 zu.
Initialisieren Sie die Array-Elemente, verwenden Sie die nextInt()-Methode der Random-Klasse, um eine Zufallszahl innerhalb von 50 zu generieren, und verwenden Sie die append()-Methode der JTextArea-Klasse, um die Array-Elemente im Textfeldsteuerelement anzuzeigen.
Klicken Sie auf die Schaltfläche „Sortieren“ und verwenden Sie die Methode setText() der Klasse JTextArea, um den Textbereich zu löschen.
Verwenden Sie eine doppelschichtige for-Schleife, um jeden Durchgang vom zweiten bis zum letzten Element zu sortieren, die an der Sortierung beteiligten Elemente zu durchlaufen und den Array-Index zu finden, der dem Maximalwert entspricht.
Tauschen Sie die beiden Zahlen an Position array.length-i und index (Maximalwert) aus, sodass der nach jeder Sortierung gefundene Maximalwert am Ende des an dieser Sortierung beteiligten Arrays liegt;
Verwenden Sie eine for-Schleife, um das Array zu durchlaufen, und verwenden Sie die Append-Methode der Random-Klasse, um die sortierten Array-Elemente im Textfeld anzuzeigen.
Der Code lautet wie folgt:
Kopieren Sie den Codecode wie folgt:
import java.awt.EventQueue;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Random;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.border.EmptyBorder;
öffentliche Klasse SelectSort erweitert JFrame {
/**
*
*/
private static final long serialVersionUID = 6824538613659403529L;
privates JPanel contentPane;
/**
* Starten Sie die Anwendung.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
versuchen {
SelectSort-Frame = new SelectSort();
frame.setVisible(true);
} Catch (Ausnahme e) {
e.printStackTrace();
}
}
});
}
/**
* Erstellen Sie den Rahmen.
*/
public SelectSort() {
setTitle("Sortieren Sie das Array mithilfe der Auswahlsortierung");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new 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 = new 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);
JButton button = new JButton("Zufallszahlen generieren");
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
do_button_actionPerformed(e);
}
});
GridBagConstraints gbc_button = new GridBagConstraints();
gbc_button.insets = new Insets(0, 0, 5, 0);
gbc_button.gridx = 0;
gbc_button.gridy = 1;
contentPane.add(button, 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 button_1 = new JButton("Sort");
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(button_1, gbc_button_1);
}
private int[] array = new int[10];
private JTextArea textArea1;
private JTextArea textArea2;
protected void do_button_actionPerformed(ActionEvent e) {
Random random = new Random();//Erstelle ein Zufallszahlenobjekt
textArea1.setText("");//Löschen Sie den Textbereich
for (int i = 0; i < array.length; i++) {//Array-Elemente initialisieren
array[i] = random.nextInt(50);//Erzeuge eine Zufallszahl innerhalb von 50
textArea1.append(array[i]+" ");// Zeigt die Array-Elemente im Textbereichssteuerelement an
}
}
protected void do_button_1_actionPerformed(ActionEvent e) {
textArea2.setText("");//Löschen Sie den Textbereich
int-Index;
for (int i = 1; i < array.length; i++) {
Index = 0;
for (int j = 1; j <= array.length - i; j++) {
if (array[j] > array[index]) {
index = j; // Maximalwert ermitteln
}
}
// Tauschen Sie die beiden Zahlen an Position array.length-i und index aus (Maximalwert)
int temp = array[array.length - i];
array[array.length - i] = array[index];
array[index] = temp;
}
for (int i = 0; i < array.length; i++) {
textArea2.append(array[i] + " ");//Anzeige der sortierten Array-Elemente im Textbereich
}
}
}
Der Effekt ist wie in der Abbildung dargestellt: