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

📄 shellsort.java

📁 本软件是使用java 开发的
💻 JAVA
字号:
package datastructure;import java.awt.*;import java.awt.event.*;/** * <p>Title: </p> * <p>Description: </p> * <p>Copyright: Copyright (c) 2004</p> * <p>Company: </p> * @author unascribed * @version 1.0 */import javax.swing.*;public class ShellSort extends Panel    implements Runnable, ActionListener{    private Image offscreenImage;    private Graphics offscreenGraphics;    private int aWidth;    private int aHeight;    private Thread runner;    private int groupSize;    private ShellPersonGroup theShellPersonGroup;    private boolean runFlag;    private int order;    public static JButton newButton;    public static JButton stayButton;;    //public static JButton  stayButton;    public static JButton runButton;    public static JButton stepButton;    bsDialog inputDig;    CodeAnimationPanel codePanel;    int data[]={4, 153, 19, 199, 61, 158, 28, 97, 144, 75, 11, 88, 180};    public ShellSort(bsDialog  inputDig)     {         this.inputDig=inputDig;         groupSize = 10;         order = 1;         setLayout(new BorderLayout());    }    public void init()        {   String as[]={"void ShellInsert ( SqList &L,int dlta[],int t) ",                         "{  for (k=0;k<t;++t);",                         "  { dk=dlta[k];",                         "      for ( i=dk+1; i<=L.length; ++i )",                         "      if ( L.r[i].key < L.r[i-dk].key ) ",                         "       {   L.r[0] = L.r[i]; ",                         "             for ( j=i-dk; j>0 && L.r[0].key < L.r[j].key; j-=dk )",                         "                 L.r[j+dk] = L.r[j]; " ,                         "              L.r[j+dk] = L.r[0];  }",                      "   }  ",                   "}"};        codePanel=new CodeAnimationPanel(as);        this.add(codePanel,BorderLayout.EAST);        theShellPersonGroup = new ShellPersonGroup(data,codePanel);        newButton = new JButton("新建");        newButton.addActionListener(this);        runButton = new JButton("执行");        runButton.addActionListener(this);        stepButton = new JButton("单步");        stepButton.addActionListener(this);        stayButton = new JButton("暂停");       stayButton.addActionListener(this);        runFlag = false;        theShellPersonGroup.setDrawMode(2);        paintComponents(getGraphics());         show();    }   public void paint(Graphics g)    {            theShellPersonGroup.draw(g);    }    public void update(Graphics g)    {        paint(g);    }    public void actionPerformed(ActionEvent actionevent)    {        if(actionevent.getSource() == newButton)        {            inputDig.setVisible(true);           // inputDig.get         int [] data=inputDig.getResult();            runFlag = false;            //order = order != 1 ? 1 : 2;            theShellPersonGroup = new ShellPersonGroup(data,codePanel);        } else        if(actionevent.getSource() == runButton)        {            theShellPersonGroup.setDrawMode(1);            runFlag = true;        } else        if(actionevent.getSource() == stepButton && !theShellPersonGroup.getDone())        {            runFlag = false;            theShellPersonGroup.sortStep();            theShellPersonGroup.setDrawMode(1);        }        else if (actionevent.getSource() == stayButton) {             runFlag = false;        }        repaint();    }    public void start()    {        if(runner == null)        {            runner = new Thread(this);            runner.start();        }    }    public void stop()    {        runner = null;    }    public void run()    {        for(Thread thread = Thread.currentThread(); runner == thread;)            if(runFlag && !theShellPersonGroup.getDone())            {                theShellPersonGroup.sortStep();                repaint();                theShellPersonGroup.setDrawMode(1);                int i = GlobalControls.delay;                try                {                    Thread.sleep(i);                }                catch(InterruptedException _ex) { }            }    }}

⌨️ 快捷键说明

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