源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

Java使用选择排序法对数组排序实现代码

  • 时间:2021-09-07 14:13 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:Java使用选择排序法对数组排序实现代码
编写程序,实现将输入的字符串转换为一维数组,并使用选择排序法对数组进行排序。 思路如下: 点击"生成随机数"按钮,创建Random随机数对象; 使用JTextArea的setText()方法清空文本域; 创建一个整型一维数组,分配长度为10的空间; 初始化数组元素,使用Random类的nextInt()方法生成50以内的随机数,使用JTextArea类的append()方法把数组元素显示在文本域控件中; 点击"排序"按钮,使用JTextArea类的setText()方法清空文本域; 使用双层for循环,对从第二个元素到最后一个元素的每一趟排序,对该趟排序所涉及的元素进行遍历,查找最大值对应的数组下标; 交换在位置array.length-i和index(最大值)两个数,使得每趟排序后找到的最大值都在该趟排序所涉及的数列的最后; 使用for循环遍历数组,使用Random类的append方法把排序后的数组元素显示到文本域中。 代码如下:
[u]复制代码[/u] 代码如下:
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] + "  ");// 把排序后的数组元素显示到文本域中         }     } }
效果如图: [img]http://files.jb51.net/file_images/article/201402/2014218160457901.png[/img]
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部