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

回到顶部