冒泡排序每次循环结果

import java.awt.EventQueue;

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;
import net.miginfocom.swing.MigLayout;
import java.awt.GridBagLayout;
import java.awt.GridBagConstraints;
import java.awt.Insets;

public class BubbleSort extends JFrame {
    
    /**
     * 
     */
    private static final long serialVersionUID = -5417254398243107506L;
    private JPanel contentPane;
    
    /**
     * Launch the application.
     */
    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    BubbleSort frame = new BubbleSort();
                    frame.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }
    
    /**
     * Create the frame.
     */
    public BubbleSort() {
        setTitle("使用冒泡排序法对数组排序");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setBounds(100, 100, 306, 364);
        contentPane = new JPanel();
        contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
        setContentPane(contentPane);
        GridBagLayout gbl_contentPane = new GridBagLayout();
        gbl_contentPane.columnWidths = new int[]{266, 0};
        gbl_contentPane.rowHeights = new int[]{46, 28, 173, 28, 0};
        gbl_contentPane.columnWeights = new double[]{0.0, Double.MIN_VALUE};
        gbl_contentPane.rowWeights = new double[]{0.0, 0.0, 0.0, 0.0, Double.MIN_VALUE};
        contentPane.setLayout(gbl_contentPane);
        
        JScrollPane scrollPane = new JScrollPane();
        GridBagConstraints gbc_scrollPane = new GridBagConstraints();
        gbc_scrollPane.fill = GridBagConstraints.BOTH;
        gbc_scrollPane.insets = new Insets(0, 0, 5, 0);
        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.fill = GridBagConstraints.VERTICAL;
        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.fill = GridBagConstraints.BOTH;
        gbc_scrollPane_1.insets = new Insets(0, 0, 5, 0);
        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.fill = GridBagConstraints.VERTICAL;
        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("");// 清空文本域
        for (int i = 1; i < array.length; i++) {
            // 比较相邻两个元素,较大的数往后冒泡
            for (int j = 0; j < array.length - i; j++) {
                if (array[j] > array[j + 1]) {
                    int temp = array[j];// 把第一个元素值保持到临时变量中
                    array[j] = array[j + 1];// 把第二个元素值保存到第一个元素单元中
                    array[j + 1] = temp;// 把临时变量也就是第一个元素原值保持到第二个元素中
                }
                textArea2.append(array[j] + "  ");// 把排序后的数组元素显示到文本域中
            }
            textArea2.append("【");
            for (int j = array.length - i; j < array.length; j++) {
                textArea2.append(array[j] + "  ");// 把排序后的数组元素显示到文本域中
            }
            textArea2.append("】\n");
        }
    }
}

java实例摘要(四)相关推荐

  1. java实例摘要(三)

    1.eventqueue.invokelater 把这个事件(new Runnable(设置计算器可见))添加到awt的事件处理线程当中去awt的事件处理线程会按照队列的顺序依次调用每个待处理的事件来 ...

  2. java实例摘要(二)

    获取一维数组的最小值 import java.awt.EventQueue; import java.awt.event.ActionEvent; import java.awt.event.Acti ...

  3. Java 中的四种引用

    垃圾收集器与内存分配策略参考目录: 1.判断Java 对象实例是否死亡 2. Java 中的四种引用 3.垃圾收集算法 4. Java9中的GC 调优 5.内存分配与回收策略 在进行垃圾回收之前,虚拟 ...

  4. Thrift入门及Java实例演示

    来源:http://www.micmiu.com/soa/rpc/thrift-sample/ Thrift入门及Java实例演示 作者: Michael日期: 2012 年 6 月 14 日 发表评 ...

  5. ZooKeeper官方文档学习笔记04-ZooKeeper的Java实例

    碎碎念:启动成功了一半.可以启动,可以debug,但是有些方法无法访问,而且create在哪里,我还不清楚.那个DataMonitor,不能完全按照官网写,要像我一样改一下,不然会报werror,因为 ...

  6. Java并发的四种风味:Thread、Executor、ForkJoin和Actor

    原文地址:Java并发的四种风味:Thread.Executor.ForkJoin和Actor 这篇文章讨论了Java应用中并行处理的多种方法.从自己管理Java线程,到各种更好的几种解决方法,Exe ...

  7. java中的四种代码块

    原文链接: java中的四种代码块_Munt的博客-CSDN博客_java中代码块 在java中用{}括起来的称为代码块,代码块可分为以下四种: 一.简介 1.普通代码块: 类中方法的方法体 2.构造 ...

  8. 尚学堂java实战第四章课后习题

    尚学堂java实战第四章课后习题 文章中的题目答案仅供参考 选择题答案: 1.B 解析:一个java类必然存在构造器,即使没有定义构造器,也会存在一个默认的无参构造器. 2.D 3.AC 解析: A( ...

  9. Java 实例-打印图形

    Java 实例 – 打印菱形 输出指定行数的菱形. package com.example.yan.java打印图形;public class Main {public static void mai ...

最新文章

  1. 使用W3C XML Schema
  2. 在leangoo里怎么复制删除列表?
  3. OpenGL ES 简单教程
  4. java 非法字符: \65279
  5. Android第二十四期 - 游戏公告跑马灯效果
  6. android实现弹出输入法时,顶部固定,中间部分上移的效果,使用 Dialog 制作紧贴输入法顶部的输入框...
  7. cutftp连接redhadlinux
  8. (已解决)利用LiveReload插件实现vscode和谷歌浏览器实时刷新
  9. AD20中添加3D封装模型库
  10. linux非lvm分区在线扩容,Linux硬盘扩容(非LVM)
  11. 迷你西游最新服务器是哪个,《迷你西游》新开服务器公告
  12. 用Python生成马赛克画
  13. golang 基于文件的消息队列 ---> diskqueue
  14. layui实现表格合并单元格,设置不同背景色
  15. 杭电OJ 1129(C++)
  16. 【码农学编曲】关于宿主软件和插件的推荐
  17. 华为摄像机搜索软件_构建AI新生态,“软件定义”摄像机打造机器智能新捷径...
  18. Android 12 快速适配要点
  19. 编程语言专题《开发篇,实参数组名与形参数组名》
  20. 一个毕业6年的程序员工作经历和成长感悟(终)

热门文章

  1. [转载] python中numpy模块的around方法_更好地舍入Python的NumPy.around:舍入numpy的数组
  2. Python实训第一天--基础知识
  3. js进阶正则表达式10-分组-多行匹配-正则对象的属性(小括号作用:分组,将小括号里面的东西看成一个整体,因为量词只对前一个字符有效)(多行匹配:m)(属性使用:reg.global)...
  4. cognos report上钻下钻报表处理方法(2)
  5. (转)C++ 库汇总(网址+简介)
  6. JavaScript 弹出层,背景变暗
  7. BlogEngine
  8. catkin_make 只编译一个包
  9. vbs获取程序窗体句柄_VBS调用windows api函数(postmessage)实现后台发送按键脚本...
  10. 部分代码_C primer plus 第三章 (代码部分)