Java使用选择排序法对数组排序实现代码
编写程序,实现将输入的字符串转换为一维数组,并使用选择排序法" title="选择排序法">选择排序法对数组进行排序。
思路如下:
点击"生成随机数"按钮,创建Random随机数对象;使用JTextArea的setText()方法清空文本域;创建一个整型一维数组,分配长度为10的空间;初始化数组元素,使用Random类的nextInt()方法生成50以内的随机数,使用JTextArea类的append()方法把数组元素显示在文本域控件中;点击"排序"按钮,使用JTextArea类的setText()方法清空文本域;使用双层for循环,对从第二个元素到最后一个元素的每一趟排序,对该趟排序所涉及的元素进行遍历,查找最大值对应的数组下标;交换在位置array.length-i和index(最大值)两个数,使得每趟排序后找到的最大值都在该趟排序所涉及的数列的最后;使用for循环遍历数组,使用Random类的append方法把排序后的数组元素显示到文本域中。代码如下:
代码如下:
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;public class SelectSort extends JFrame { /** * */ private static final long serialVersionUID = 6824538613659403529L; private JPanel contentPane; /** * Launch the application. */ public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { public void run() { try { SelectSort frame = new SelectSort(); frame.setVisible(true); } catch (Exception e) { e.printStackTrace(); } } }); } /** * Create the frame. */ public SelectSort() { 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 = 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("生成随机数"); 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("排序"); 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();// 创建随机数对象 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("");// 清空文本域 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;// 查找最大值 } } // 交换在位置array.length-i和index(最大值)两个数 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] + " ");// 把排序后的数组元素显示到文本域中 } }}
效果如图:
以上是 Java使用选择排序法对数组排序实现代码 的全部内容, 来源链接: utcz.com/p/207659.html