import java.util.*;
public class QuickSort extends JApplet {
int list[];
JButton sort;
JTextArea ta;
int size;
int loop=0;
public String getContents(){
String tmp="";
for(int k=0;k<=19;k++){
tmp=tmp+" "+list[k];
if(k%10==0)
tmp=tmp+'\n';}
return tmp;
}
public void init(){
Random thing=new Random();
sort =new JButton("sort");
ta=new JTextArea(20,50);
list=new int[20];
for(int j=0;j<20;j++)
list[j]=thing.nextInt(1000);
Container c=getContentPane();
c.setLayout(new BorderLayout());
c.add(ta,BorderLayout.CENTER);
c.add(sort,BorderLayout.SOUTH);
ta.setText(getContents());
sort.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
size=19;
ta.append("\nsort\n");
quickSort(list,0,19);
ta.append(getContents());
}
}
);
}
public void quickSort(int list[],int left,int right){
if(left<right){
int i=left;
int j=right+1;
int pivot=list[i];
do{
do i++; while(list[i]<pivot&&i<right);
do j--; while (list[j]>pivot);
if(i<j)swap(list,i,j);
}while(i<j);
swap(list,left,j);
//ta.append("recursion"+loop+getContents());
//loop++;
quickSort(list,left,j-1);
quickSort(list,j+1,right);
}//if
}//qsort
public void swap(int list[],int a,int b){
int tmp=list[a];
list[a]=list[b];
list[b]=tmp;
}//swap
}//class