Tulis program untuk mengubah string input menjadi array satu dimensi dan mengurutkan array menggunakan pengurutan pilihan.
Idenya adalah sebagai berikut:
Klik tombol "Hasilkan Nomor Acak" untuk membuat objek nomor Acak;
Gunakan metode setText() JTextArea untuk menghapus area teks;
Buat array bilangan bulat satu dimensi dan alokasikan ruang dengan panjang 10;
Inisialisasi elemen array, gunakan metode nextInt() dari kelas Random untuk menghasilkan angka acak dalam 50, dan gunakan metode append() dari kelas JTextArea untuk menampilkan elemen array di kontrol bidang teks;
Klik tombol "Sort" dan gunakan metode setText() kelas JTextArea untuk menghapus area teks;
Gunakan loop for dua lapis untuk mengurutkan setiap lintasan dari elemen kedua ke elemen terakhir, melintasi elemen yang terlibat dalam pengurutan, dan menemukan subskrip array yang sesuai dengan nilai maksimum;
Tukarkan kedua angka pada posisi array.length-i dan indeks (nilai maksimum) sehingga nilai maksimum yang ditemukan setelah setiap pengurutan berada di akhir array yang terlibat dalam pengurutan tersebut;
Gunakan perulangan for untuk melintasi array, dan gunakan metode append dari kelas Random untuk menampilkan elemen array yang diurutkan ke dalam bidang teks.
Kodenya adalah sebagai berikut:
Copy kode kodenya sebagai berikut:
impor java.awt.EventQueue;
impor java.awt.GridBagConstraints;
impor java.awt.GridBagLayout;
impor java.awt.Insets;
impor java.awt.event.ActionEvent;
impor java.awt.event.ActionListener;
import java.util.Acak;
impor javax.swing.JButton;
impor javax.swing.JFrame;
impor javax.swing.JPanel;
impor javax.swing.JScrollPane;
impor javax.swing.JTextArea;
impor javax.swing.border.EmptyBorder;
kelas publik SelectSort memperluas JFrame {
/**
*
*/
serial panjang akhir statis pribadiVersionUID = 6824538613659403529L;
panel konten JPanel pribadi;
/**
* Luncurkan aplikasi.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
menjalankan kekosongan publik() {
mencoba {
Bingkai SelectSort = SelectSort baru();
frame.setVisible(benar);
} tangkapan (Pengecualian e) {
e.printStackTrace();
}
}
});
}
/**
* Buat bingkai.
*/
publik SelectSort() {
setTitle("Urutkan array menggunakan pengurutan pilihan");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBatas(100, 100, 450, 300);
contentPane = JPanel baru();
contentPane.setBorder(EmptyBorder baru(5, 5, 5, 5));
setContentPane(kontenPane);
GridBagLayout gbl_contentPane = GridBagLayout baru();
gbl_contentPane.columnWidths = int baru[] { 0, 0 };
gbl_contentPane.rowHeights = int baru[] { 0, 0, 0, 0, 0 };
gbl_contentPane.columnWeights = ganda baru[] { 1.0, Ganda.MIN_VALUE };
gbl_contentPane.rowWeights = ganda baru[] { 1.0, 0.0, 1.0, 0.0,
Ganda.MIN_VALUE };
contentPane.setLayout(gbl_contentPane);
JScrollPane scrollPane = JScrollPane baru();
GridBagConstraints gbc_scrollPane = GridBagConstraints baru();
gbc_scrollPane.insets = Inset baru(0, 0, 5, 0);
gbc_scrollPane.fill = GridBagConstraints.BOTH;
gbc_scrollPane.gridx = 0;
gbc_scrollPane.gridy = 0;
contentPane.tambahkan(scrollPane, gbc_scrollPane);
textArea1 = JTextArea baru();
scrollPane.setViewportView(textArea1);
Tombol JButton = new JButton("Hasilkan angka acak");
tombol.addActionListener(ActionListener baru() {
public void actionPerformed(ActionEvent e) {
do_button_actionPerformed(e);
}
});
GridBagConstraints gbc_button = GridBagConstraints baru();
gbc_button.insets = Inset baru(0, 0, 5, 0);
gbc_button.gridx = 0;
gbc_button.gridy = 1;
contentPane.tambahkan(tombol, gbc_button);
JScrollPane scrollPane_1 = JScrollPane baru();
GridBagConstraints gbc_scrollPane_1 = GridBagConstraints baru();
gbc_scrollPane_1.insets = Inset baru(0, 0, 5, 0);
gbc_scrollPane_1.fill = GridBagConstraints.BOTH;
gbc_scrollPane_1.gridx = 0;
gbc_scrollPane_1.gridy = 2;
contentPane.tambahkan(scrollPane_1, gbc_scrollPane_1);
textArea2 = JTextArea baru();
scrollPane_1.setViewportView(textArea2);
JButton button_1 = JButton baru("Urutkan");
button_1.addActionListener(ActionListener baru() {
public void actionPerformed(ActionEvent e) {
do_button_1_actionPerformed(e);
}
});
GridBagConstraints gbc_button_1 = GridBagConstraints baru();
gbc_button_1.gridx = 0;
gbc_button_1.gridy = 3;
contentPane.tambahkan(button_1, gbc_button_1);
}
pribadi int[] array = int baru[10];
textArea1 JTextArea pribadi;
textArea2 JTextArea pribadi;
dilindungi kekosongan do_button_actionPerformed(ActionEvent e) {
Acak acak = baru Acak();//Buat objek angka acak
textArea1.setText("");//Menghapus area teks
for (int i = 0; i < array.length; i++) {//Inisialisasi elemen array
array[i] = random.nextInt(50);//Hasilkan angka acak dalam 50
textArea1.append(array[i]+" ");// Menampilkan elemen array di kontrol area teks
}
}
dilindungi kekosongan do_button_1_actionPerformed(ActionEvent e) {
textArea2.setText("");//Menghapus area teks
int indeks;
for (int i = 1; i < array.panjang; i++) {
indeks = 0;
for (int j = 1; j <= array.panjang - i; j++) {
jika (array[j] > array[indeks]) {
indeks = j; // Temukan nilai maksimum
}
}
//Tukarkan kedua angka tersebut pada posisi array.length-i dan indeks (nilai maksimum)
int temp = array[array.panjang - i];
array[array.panjang - i] = array[indeks];
susunan[indeks] = suhu;
}
for (int i = 0; i < array.panjang; i++) {
textArea2.append(array[i] + " ");//Menampilkan elemen array yang diurutkan ke dalam area teks
}
}
}
Efeknya seperti yang ditunjukkan pada gambar: