⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 frame2.java

📁 JAVA课程设计!用线程来实现比较查找、排序算法的运行时间
💻 JAVA
字号:
package myjava;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import com.borland.jbcl.layout.*;
import javax.swing.border.*;

/**
 * <p>Title: JAVA课程设计</p>
 * <p>Description: 实习3</p>
 * <p>Copyright: Copyright (c) 2005</p>
 * <p>Company: 湖南农业大学</p>
 * @author 温小林
 * @version 1.0
 */
class sort extends Thread
{
        JTextArea sjt;
        JTextArea object;
        int option;
        int[] sz;
        public sort(JTextArea sjt,JTextArea object,int option)
        {
                this.sjt=sjt;
                this.option=option;
                this.object=object;
                        String[] temp=sjt.getText().split(",");
                        this.sz=new int[temp.length];
                        for(int i=0;i<temp.length;i++)
                                sz[i]=Integer.parseInt(temp[i]);
        }
        public void mp(int[] a)					//冒泡排序
        {
                int temp;
                for (int k = 0; k < 50000; k++)
                for (int i = 0; i < a.length; i++)
           {
            for (int j = i; j < a.length - 1; j++)
             {
                      if (a[j + 1] > a[j])
                       {
                         temp = a[j + 1];
                         a[j + 1] = a[j];
                         a[j] = temp;

                }
              }
           }
        }
        public void ch(int[] a)				//选择排序
        {
                int temp;
                for (int k = 0; k < 50000; k++)
                for (int i = 0; i < a.length-1; i++)
           {
            for (int j = i+1; j < a.length; j++)
             {
                      if (a[j] > a[i])
                       {
                         temp = a[i];
                         a[i] = a[j];
                         a[j] = temp;

                }
              }
    }
 }
 public void quick(int[] a)
 {
   Frame2 s = new Frame2();
   int t=a.length-1;
 for (int k = 0; k < 50000; k++) {
    s.quicksort(a, 0, t);
  }

 }

        public void run()
        {
                long begin = System.currentTimeMillis();
                switch(option)
                {
                        case 1: mp(sz);
                                        for (int i = 0; i < sz.length; i++)
                                {
                                         object.append(sz[i]+" ");
                                 }
                                 System.out.println("");
                                break;
                       case 2:quick(sz);
                                     for (int i = 0; i < sz.length; i++)
                                      {
                                               object.append(sz[i]+" ");
                                       }
                                       System.out.println("");
                                      break;

                        case 3:	ch(sz);
                                        for (int i = 0; i < sz.length; i++)
                                {
                                         object.append(sz[i]+" ");
                                 }
                                 System.out.println("");
                                break;


                }
                long end = System.currentTimeMillis();
                object.append("\n用时:"+String.valueOf(end-begin));
        }
}

public class Frame2 extends JFrame {
  JPanel contentPane;
  XYLayout xYLayout1 = new XYLayout();
  JLabel jLabel1 = new JLabel();
  JTextArea jTextArea7 = new JTextArea();
  JLabel jLabel3 = new JLabel();
  JLabel jLabel2 = new JLabel();
  JTextArea jTextArea6 = new JTextArea();
  JLabel jLabel4 = new JLabel();
  JTextArea jTextArea5 = new JTextArea();
  JLabel jLabel5 = new JLabel();
  JTextArea jTextArea3 = new JTextArea();
  JButton jButton1 = new JButton();
  JButton jButton2 = new JButton();
  TitledBorder titledBorder1;
  TitledBorder titledBorder2;
  TitledBorder titledBorder3;
  TitledBorder titledBorder4;
  JLabel jLabel6 = new JLabel();
  JButton jButton3 = new JButton();
  public void quicksort(int a[], int low, int high) //快速排序
  {
           int pivot;
           if (low < high)
            {
                   pivot = partition(a, low, high);
                   quicksort(a, low, pivot - 1);
                   quicksort(a, pivot + 1, high);
            }
   }
       public int partition(int b[], int low, int high)
  {
           int pivot, p_pos, iii;
           p_pos = low;
           pivot = b[p_pos];
           for (iii = low + 1; iii <= high; iii++)
            {
             if (b[iii] > pivot)
              {
                       p_pos++;

                       swap(b, p_pos, iii);
               }
            }
         swap(b, low, p_pos);
         return p_pos;
  }
  public void swap(int a[], int ii, int jj)
  {
         int tmp = a[ii];
         a[ii] = a[jj];
         a[jj] = tmp;
   }

  //Construct the frame
  public Frame2() {
    enableEvents(AWTEvent.WINDOW_EVENT_MASK);
    try {
      jbInit();
    }
    catch(Exception e) {
      e.printStackTrace();
    }
  }

  //Component initialization
  private void jbInit() throws Exception  {
    contentPane = (JPanel) this.getContentPane();
    titledBorder1 = new TitledBorder("");
    titledBorder2 = new TitledBorder("");
    titledBorder3 = new TitledBorder("");
    titledBorder4 = new TitledBorder("");
    jTextArea7.setText("12,45,36,68,29,17,10,32,30,10,50,96,48,67,30,126,965,41,43,48");
    jTextArea7.setBorder(BorderFactory.createLineBorder(Color.black));
    jLabel1.setText("请输入数组。并用“逗号”分开!");
    jLabel1.setDisplayedMnemonic('0');
    jLabel1.setRequestFocusEnabled(true);
    jLabel1.setPreferredSize(new Dimension(159, 18));
    jLabel1.setDoubleBuffered(false);
    jLabel1.setFont(new java.awt.Font("Dialog", 0, 12));
    contentPane.setLayout(xYLayout1);
    this.setResizable(false);
    this.setSize(new Dimension(385, 335));
    this.setTitle("Frame Title");
    jLabel3.setText("....................................................................................................." +
    ".....................");
    jLabel2.setFont(new java.awt.Font("Dialog", 0, 12));
    jLabel2.setToolTipText("");
    jLabel2.setText("冒泡排序法");
    jTextArea6.setBorder(BorderFactory.createLineBorder(Color.black));
    jTextArea6.setText("系统等待中。。。");
    jLabel4.setText("快速排序法");
    jLabel4.setToolTipText("");
    jLabel4.setFont(new java.awt.Font("Dialog", 0, 12));
    jTextArea5.setBorder(BorderFactory.createLineBorder(Color.black));
    jTextArea5.setText("系统等待中。。。");
    jLabel5.setText("选择排序法");
    jLabel5.setToolTipText("");
    jLabel5.setFont(new java.awt.Font("Dialog", 0, 12));
    jTextArea3.setBorder(BorderFactory.createLineBorder(Color.black));
    jTextArea3.setText("系统等待中。。。");
    jButton1.setFont(new java.awt.Font("Dialog", 0, 12));
    jButton1.setBorder(BorderFactory.createEtchedBorder());
    jButton1.setText("开  始");
    jButton1.addActionListener(new Frame2_jButton1_actionAdapter(this));
    jButton2.setText("退  出");
    jButton2.addActionListener(new Frame2_jButton2_actionAdapter(this));
    jButton2.setFont(new java.awt.Font("Dialog", 0, 12));
    jButton2.setBorder(BorderFactory.createEtchedBorder());
    contentPane.setDoubleBuffered(true);
    contentPane.setOpaque(true);
    contentPane.setPreferredSize(new Dimension(384, 293));
    contentPane.setRequestFocusEnabled(true);
    jLabel6.setText("....................................................................................................." +
    ".....................");
    jButton3.setFont(new java.awt.Font("Dialog", 0, 12));
    jButton3.setBorder(BorderFactory.createLineBorder(Color.black));
    jButton3.setText("产生随机数");
    jButton3.addActionListener(new Frame2_jButton3_actionAdapter(this));
    contentPane.add(jLabel1, new XYConstraints(7, 8, 180, 20));
    contentPane.add(jTextArea7, new XYConstraints(8, 28, 366, 22));
    contentPane.add(jLabel3,       new XYConstraints(8, 53, 376, 13));
    contentPane.add(jLabel2,     new XYConstraints(8, 70, 139, -1));
    contentPane.add(jTextArea6,     new XYConstraints(8, 90, 363, 39));
    contentPane.add(jLabel4, new XYConstraints(8, 135, 139, -1));
    contentPane.add(jTextArea5, new XYConstraints(8, 155, 363, 39));
    contentPane.add(jTextArea3,  new XYConstraints(8, 221, 363, 39));
    contentPane.add(jLabel5, new XYConstraints(8, 201, 139, -1));
    contentPane.add(jLabel6, new XYConstraints(6, 260, 376, 13));
    contentPane.add(jButton3,              new XYConstraints(272, 6, 101, 19));
    contentPane.add(jButton2,  new XYConstraints(296, 278, 75, 25));
    contentPane.add(jButton1, new XYConstraints(208, 278, 75, 25));
  }

  //Overridden so we can exit when window is closed
  protected void processWindowEvent(WindowEvent e) {
    super.processWindowEvent(e);
    if (e.getID() == WindowEvent.WINDOW_CLOSING) {
      System.exit(0);
    }
  }

  void jButton2_actionPerformed(ActionEvent e) {
  System.exit(0);
  }

  void jButton1_actionPerformed(ActionEvent e) {
    jTextArea6.setText("");
    jTextArea5.setText("");
    jTextArea3.setText("");
    sort s1=new sort(jTextArea7,jTextArea6,1);
    s1.start();
    sort s2=new sort(jTextArea7,jTextArea5,2);
    s2.start();
    sort s3=new sort(jTextArea7,jTextArea3,3);
    s3.start();

      return;

  }

  void jButton3_actionPerformed(ActionEvent e) {
  jTextArea7.setText("");
  int table[]=new int [20];
  int i;
  for(i=0;i<table.length;i++)
    table[i]=(int)(Math.random()*100);
  for(i=0;i<table.length;i++)
  {
  jTextArea7.append(table[i]+",");
  }
  }
}

class Frame2_jButton2_actionAdapter implements java.awt.event.ActionListener {
  Frame2 adaptee;

  Frame2_jButton2_actionAdapter(Frame2 adaptee) {
    this.adaptee = adaptee;
  }
  public void actionPerformed(ActionEvent e) {
    adaptee.jButton2_actionPerformed(e);
  }
}

class Frame2_jButton1_actionAdapter implements java.awt.event.ActionListener {
  Frame2 adaptee;

  Frame2_jButton1_actionAdapter(Frame2 adaptee) {
    this.adaptee = adaptee;
  }
  public void actionPerformed(ActionEvent e) {
    adaptee.jButton1_actionPerformed(e);
  }
}

class Frame2_jButton3_actionAdapter implements java.awt.event.ActionListener {
  Frame2 adaptee;

  Frame2_jButton3_actionAdapter(Frame2 adaptee) {
    this.adaptee = adaptee;
  }
  public void actionPerformed(ActionEvent e) {
    adaptee.jButton3_actionPerformed(e);
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -