选择排序


/*
 * 选择排序的研究
 * 
 * */

package day9yue11;

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;

public class SelectSort2 extends JFrame {

    private JPanel contentPane;
    private JTextArea area1;
    private JTextArea area2;

    int[] arr = new int[10];

    public SelectSort2() {
        this.setTitle("选择排序研究");
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        this.setBounds(100, 100, 450, 300);
        // 创建容器,设置属性
        contentPane = new JPanel();
        this.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();
        // 设置scrollPane属性
        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;

        // 把scrollPane添加到contentPane
        contentPane.add(scrollPane, gbc_scrollPane);

        // 设置第一个TextArea
        area1 = new JTextArea();
        scrollPane.setViewportView(area1);

        // 设置按钮
        JButton button1 = new JButton("生成随机数组");
        // 生成随机数组
        button1.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                getArr();

            }
        });

        GridBagConstraints gbc_button = new GridBagConstraints();
        gbc_button.insets = new Insets(0, 0, 5, 0);
        gbc_button.gridx = 0;
        gbc_button.gridy = 1;
        contentPane.add(button1, gbc_button);

        // 再创建一个JScrollPane 用来存储area2
        JScrollPane scrollPane2 = 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(scrollPane2, gbc_scrollPane_1);

        // 设置第二个TextArea
        area2 = new JTextArea();
        scrollPane2.setViewportView(area2);

        // 创建“排序按钮”

        JButton button2 = new JButton("排序");
        button2.addActionListener(new ActionListener() {

            // 排序算法
            public void actionPerformed(ActionEvent e) {
                selectSort();

            }
        });

        // 设置button2的样式
        GridBagConstraints gbc_button2 = new GridBagConstraints();
        gbc_button2.gridx = 0;
        gbc_button2.gridy = 3;

        contentPane.add(button2, gbc_button2);

    }

    // 生成数组算法

    public void getArr() {
        area1.setText("");
        Random r = new Random();
        for (int i = 0; i < arr.length; i++) {
            arr[i] = r.nextInt(50);
            area1.append(arr[i] + " ");
        }

    }

    // 选择排序算法
    public void selectSort() {
        // 点击按钮时候先清空一下area2
        area2.setText("");

        for (int i = 1; i < arr.length; i++) {
            int index = 0;
            for (int j = 1; j <= arr.length - i; j++) {

                if (arr[j] > arr[index]) {
                    index = j;
                }

            }

            int temp = arr[arr.length - i];
            arr[arr.length - i] = arr[index];
            arr[index] = temp;

        }

        // 生成新的数组,添加到文本区域
        for (int i = 0; i < arr.length; i++) {
            area2.append(arr[i] + " ");
        }
    }

    public static void main(String[] args) {
        SelectSort2 s2 = new SelectSort2();
        s2.setVisible(true);
    }

}

  • 5
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值