اكتب برنامجًا لتحويل سلسلة الإدخال إلى مصفوفة أحادية البعد وفرز المصفوفة باستخدام الفرز بالاختيار.
الفكرة هي كما يلي:
انقر فوق الزر "إنشاء رقم عشوائي" لإنشاء كائن رقم عشوائي؛
استخدم طريقة setText() الخاصة بـ JTextArea لمسح منطقة النص؛
إنشاء مصفوفة ذات بعد واحد من الأعداد الصحيحة وتخصيص مساحة بطول 10؛
تهيئة عناصر المصفوفة، استخدم طريقة nextInt() للفئة Random لإنشاء رقم عشوائي ضمن 50، واستخدم طريقة append() لفئة JTextArea لعرض عناصر المصفوفة في عنصر تحكم حقل النص؛
انقر فوق الزر "فرز" واستخدم طريقة setText() لفئة JTextArea لمسح منطقة النص؛
استخدم حلقة for مزدوجة الطبقة لفرز كل تمرير من العنصر الثاني إلى العنصر الأخير، واجتياز العناصر المشاركة في الفرز، والعثور على منخفض الصفيف المطابق للحد الأقصى للقيمة؛
قم بتبديل الرقمين في الموضع array.length-i وindex (القيمة القصوى) بحيث تكون القيمة القصوى التي تم العثور عليها بعد كل فرز في نهاية المصفوفة المشاركة في هذا الفرز؛
استخدم حلقة for لاجتياز المصفوفة، واستخدم طريقة الإلحاق للفئة Random لعرض عناصر المصفوفة التي تم فرزها في حقل النص.
الرمز هو كما يلي:
انسخ رمز الكود كما يلي:
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;
الطبقة العامة SelectSort تمتد JFrame {
/**
*
*/
serialVersionUID النهائي الطويل الخاص = 6824538613659403529L؛
محتوى JPanel الخاص؛
/**
* إطلاق التطبيق.
*/
public static void main(String[] args) {
EventQueue.invocLater(new Runnable() {
تشغيل الفراغ العام () {
يحاول {
إطار SelectSort = new SelectSort();
frame.setVisible(true);
} قبض (الاستثناء ه) {
printStackTrace();
}
}
});
}
/**
* إنشاء الإطار.
*/
تحديد الفرز العام () {
setTitle("فرز المصفوفة باستخدام فرز التحديد");
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 = مزدوج جديد[] { 1.0، 0.0، 1.0، 0.0،
Double.MIN_VALUE };
contentPane.setLayout(gbl_contentPane);
JScrollPanescrollPane = 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("إنشاء أرقام عشوائية");
Button.addActionListener(new ActionListener() {
إجراء باطل عام (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);
JScrollPanescrollPane_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 = جديد JButton("Sort");
Button_1.addActionListener(new ActionListener() {
إجراء باطل عام (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];
خاص JTextArea textArea1؛
خاص JTextArea textArea2؛
محمية باطلة do_button_actionPerformed(ActionEvent e) {
Random Random = new Random();// أنشئ كائن رقم عشوائي
textArea1.setText("");// امسح منطقة النص
for (int i = 0; i < array.length; i++) {// تهيئة عناصر المصفوفة
array[i] = Random.nextInt(50);// أنشئ رقمًا عشوائيًا خلال 50
textArea1.append(array[i]+" ");// عرض عناصر الصفيف في عنصر تحكم منطقة النص
}
}
الفراغ المحمي do_button_1_actionPerformed(ActionEvent e) {
textArea2.setText("");// امسح منطقة النص
مؤشر كثافة العمليات؛
لـ (int i = 1; i < array.length; i++) {
الفهرس = 0؛
for (int j = 1; j <= array.length - i; j++) {
إذا (صفيف [ي] > صفيف [الفهرس]) {
الفهرس = ي؛ // ابحث عن القيمة القصوى
}
}
// قم بتبديل الرقمين في الموضع array.length-i والفهرس (القيمة القصوى)
int temp = array[array.length - i];
array[array.length - i] = array[index];
صفيف [الفهرس] = درجة الحرارة؛
}
لـ (int i = 0; i < array.length; i++) {
textArea2.append(array[i] + " ");// عرض عناصر المصفوفة التي تم فرزها في منطقة النص
}
}
}
التأثير كما هو موضح في الشكل: