Напишите программу для преобразования входной строки в одномерный массив и сортировки массива с помощью сортировки выбором.
Идея заключается в следующем:
Нажмите кнопку «Сгенерировать случайное число», чтобы создать объект «Случайное число»;
Используйте метод setText() класса JTextArea, чтобы очистить текстовую область;
Создайте одномерный массив целых чисел и выделите пространство длиной 10;
Инициализируйте элементы массива, используйте метод nextInt() класса Random для генерации случайного числа в пределах 50 и используйте метод add() класса JTextArea для отображения элементов массива в элементе управления текстовым полем;
Нажмите кнопку «Сортировать» и используйте метод setText() класса JTextArea, чтобы очистить текстовую область;
Используйте двухуровневый цикл for для сортировки каждого прохода от второго элемента к последнему, обхода элементов, участвующих в сортировке, и нахождения индекса массива, соответствующего максимальному значению;
Поменяйте местами два числа в позиции array.length-i и индекс (максимальное значение) так, чтобы максимальное значение, найденное после каждой сортировки, находилось в конце массива, участвующего в этой сортировке;
Используйте цикл for для обхода массива и метод добавления класса Random для отображения отсортированных элементов массива в текстовое поле.
Код выглядит следующим образом:
Скопируйте код кода следующим образом:
импортировать java.awt.EventQueue;
импортировать java.awt.GridBagConstraints;
импортировать java.awt.GridBagLayout;
импортировать java.awt.Insets;
импортировать java.awt.event.ActionEvent;
импортировать java.awt.event.ActionListener;
импортировать java.util.Random;
импортировать javax.swing.JButton;
импортировать javax.swing.JFrame;
импортировать javax.swing.JPanel;
импортировать javax.swing.JScrollPane;
импортировать javax.swing.JTextArea;
импортировать javax.swing.border.EmptyBorder;
общественный класс SelectSort расширяет JFrame {
/**
*
*/
частный статический окончательный длинный сериалVersionUID = 6824538613659403529L;
частная JPanel contentPane;
/**
* Запустите приложение.
*/
public static void main(String[] args) {
EventQueue.invokeLater(новый Runnable() {
общественный недействительный запуск () {
пытаться {
Кадр SelectSort = новый SelectSort();
Frame.setVisible(истина);
} catch (Исключение е) {
е.printStackTrace();
}
}
});
}
/**
* Создайте рамку.
*/
общественный SelectSort() {
setTitle("Отсортируйте массив методом сортировки выбором");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = новый JPanel();
contentPane.setBorder(новый EmptyBorder(5, 5, 5, 5));
setContentPane (contentPane);
GridBagLayout gbl_contentPane = новый GridBagLayout ();
gbl_contentPane.columnWidths = новый int [] {0, 0};
gbl_contentPane.rowHeights = новый int [] {0, 0, 0, 0, 0};
gbl_contentPane.columnWeights = новый двойной [] { 1.0, Double.MIN_VALUE };
gbl_contentPane.rowWeights = новый двойной [] { 1.0, 0.0, 1.0, 0.0,
Двойной.MIN_VALUE };
contentPane.setLayout(gbl_contentPane);
JScrollPane ScrollPane = новый JScrollPane ();
GridBagConstraints gbc_scrollPane = новый GridBagConstraints ();
gbc_scrollPane.insets = новые вставки (0, 0, 5, 0);
gbc_scrollPane.fill = GridBagConstraints.BOTH;
gbc_scrollPane.gridx = 0;
gbc_scrollPane.gridy = 0;
contentPane.add(scrollPane, gbc_scrollPane);
textArea1 = новая JTextArea();
ScrollPane.setViewportView(textArea1);
Кнопка JButton = new JButton("Генерировать случайные числа");
button.addActionListener(новый ActionListener() {
общественный недействительный actionPerformed (ActionEvent e) {
do_button_actionPerformed (е);
}
});
GridBagConstraints gbc_button = новый GridBagConstraints ();
gbc_button.insets = новые вставки (0, 0, 5, 0);
gbc_button.gridx = 0;
gbc_button.gridy = 1;
contentPane.add(кнопка, gbc_button);
JScrollPane ScrollPane_1 = новый JScrollPane ();
GridBagConstraints gbc_scrollPane_1 = новый GridBagConstraints ();
gbc_scrollPane_1.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 = новая JTextArea();
ScrollPane_1.setViewportView(textArea2);
JButton button_1 = новая JButton («Сортировать»);
button_1.addActionListener (новый ActionListener () {
общественный недействительный actionPerformed (ActionEvent e) {
do_button_1_actionPerformed (е);
}
});
GridBagConstraints gbc_button_1 = новый GridBagConstraints ();
gbc_button_1.gridx = 0;
gbc_button_1.gridy = 3;
contentPane.add(button_1, gbc_button_1);
}
частный массив int[] = новый int[10];
частный JTextArea textArea1;
частный JTextArea textArea2;
protected void do_button_actionPerformed (ActionEvent e) {
Случайный случайный = новый Random();//Создаем объект случайного числа
textArea1.setText("");//Очищаем текстовую область
for (int i = 0; i < array.length; i++) {//Инициализировать элементы массива
array[i] = random.nextInt(50);//генерируем случайное число в пределах 50
textArea1.append(array[i]+" ");// Отображение элементов массива в текстовой области
}
}
protected void do_button_1_actionPerformed (ActionEvent e) {
textArea2.setText("");//Очищаем текстовую область
внутренний индекс;
for (int i = 1; i < array.length; i++) {
индекс = 0;
for (int j = 1; j <= array.length - i; j++) {
если (массив[j] > массив[индекс]) {
index = j // Находим максимальное значение
}
}
//Поменять местами два числа в позиции array.length-i и индексе (максимальное значение)
int temp = array[array.length - i];
массив[массив.длина - я] = массив[индекс];
массив [индекс] = температура;
}
for (int i = 0; i < array.length; i++) {
textArea2.append(array[i] + " ");//Отображение отсортированных элементов массива в текстовую область
}
}
}
Эффект такой, как показано на рисунке: