import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
import java.util.*;public class Sort extends JFrame
{
  JTextField jtf;
  JButton insertButton;
  JButton bubbleButton;
  JButton selectButton;
  JButton quickButton;
  Random ran=null;
  int a[],b[];
  GregorianCalendar gc1;
  GregorianCalendar gc2;
  static final int N=100000;      Sort()
       {
            insertButton=new JButton("InsertSort");
     bubbleButton=new JButton("BubbleSort");
            selectButton=new JButton("SelectSort");
     quickButton=new JButton("QuickSort");
     jtf=new JTextField(12);
     ran=new Random();
            a=new int[N];
     b=new int[N];
     for(int i=0;i<N;i++)
      {a[i]=ran.nextInt(N);}
     insertButton.addActionListener(new ActionListener(){
  public void actionPerformed(ActionEvent e)
  {   reset(N);gc1=new GregorianCalendar();
                          insertSort(b,N);gc2=new GregorianCalendar();
     jtf.setText("耗时:"+String.valueOf(gc2.getTimeInMillis()-gc1.getTimeInMillis())+"毫秒");
     }});
     bubbleButton.addActionListener(new ActionListener(){
  public void actionPerformed(ActionEvent e)
  {   reset(N);gc1=new GregorianCalendar();
                          bubbleSort(b,N);gc2=new GregorianCalendar();
     jtf.setText("耗时:"+String.valueOf(gc2.getTimeInMillis()-gc1.getTimeInMillis())+"毫秒");
     }});
     selectButton.addActionListener(new ActionListener(){
  public void actionPerformed(ActionEvent e)
  {   reset(N);gc1=new GregorianCalendar();
                          selectSort(b,N);gc2=new GregorianCalendar();
     jtf.setText("耗时:"+String.valueOf(gc2.getTimeInMillis()-gc1.getTimeInMillis())+"毫秒");
     }});
      quickButton.addActionListener(new ActionListener(){
  public void actionPerformed(ActionEvent e)
  {   reset(N);gc1=new GregorianCalendar();
                          quickSort(b,0,N-1);gc2=new GregorianCalendar();
     jtf.setText("耗时:"+String.valueOf(gc2.getTimeInMillis()-gc1.getTimeInMillis())+"毫秒");
     }});
            getContentPane().setLayout(new GridLayout(5,1));
     getContentPane().add(insertButton);
     getContentPane().add(bubbleButton);
     getContentPane().add(selectButton);
     getContentPane().add(quickButton);
     getContentPane().add(jtf);
     setLocation(460,120);
     setTitle("排序");
     setVisible(true);
     pack();
     validate();
     setDefaultCloseOperation(EXIT_ON_CLOSE);
       }         public void reset(int n)
          {
                   for (int i=0;i<n;i++)
                    {
                       b[i]=a[i];
                    }
          }
  public void display(int n)
   {
                  for (int i=0;i<n;i++)
                   {
                         System.out.print(b[i]+"   ");
                   }
   }
  public static void main(String args[])
       {  new Sort();         }      public void insertSort(int a[], int n)
       {
          int j,t;
            for(int i=1;i<n;i++)
             {
                t=a[i];
                    for(j=i-1;j>=0&&t<a[j];j--)
                        a[j+1]=a[j];
                a[j+1]=t;
             }
       } public void bubbleSort(int a[], int n)
{
  int t;
                  for(int i=0;i<n;i++)
                   {
                           for(int j=1;j<n-i;j++)
                            { if(a[j-1]>a[j]) {t=a[j];a[j]=a[j-1];a[j-1]=t;}}
                   }
}
public void selectSort(int a[],int n)
{
                 int i,j,k,t;
 for(i=0;i<n;i++)
  {
     k=i;
                                          for(j=i+1;j<n;j++)
                                           {
                                                     if(a[k]>a[j])
                                                      {
                                                            k=j;
                                                      }
                                           }
   t=a[i];a[i]=a[k];a[k]=t;
  }
}
public void quickSort(int a[],int low,int high)
{
                 int t;
   int i=low;
   int j=high;
                  
           if(low<high)
            {
                 t=a[i];
         while(i!=j)
          {
           while(a[j]>t&&i<j) j--;
           if(i<j) a[i++]=a[j];
           while(a[i]<=t&&i<j) i++;
           if(i<j) a[j--]=a[i];
          }
                     a[i]=t;
                     quickSort(a,low,i-1);
                     quickSort(a,i+1,high);
            }
   }
}
为什么在quickSort里有时候是0?