java Applet實現排序

冒泡排序:

 

import java.applet.Applet;
import java.awt.*;
public class Bubble extends Applet
{
    Label pro
=new Label("輸入整數:");
    TextField input
=new TextField(5);
    Button b
=new Button("排序");
    
//int[] DataArray=new int[10];
    int[] DataArray=new int[10];
    
int DataInputed=0;
    
int[][] SortPro=new int[11][10];

    
public void init()
    
{
        add(pro);
        add(input);
        add(b);
    }

    
public void paint(Graphics g)
    
{
        
for(int i=0;i<SortPro.length;i++)
            
for(int j=0;j<SortPro.length;j++)
                g.drawString(Integer.toString(SortPro[i][j]),
10+30*j,40+20*i);
    }


    
public boolean action(Event e,Object o)
    
{
        
if(e.target==input)
        
{
            DataArray[DataInputed
++]=Integer.parseInt(input.getText());
            
if(DataInputed<10)
            
{
                pro.setText(
"已輸入"+DataInputed+"個數據,請繼續");
                input.setText(
"");
            }

            
else
            
{
                pro.setText(
" 已輸入十個數據,不能再輸入!");
                input.hide();
            }

        }

        
if(e.target==b)
        
{
            
for(int i=0;i<DataArray.length;i++)
                SortPro[
0][i]=DataArray[i];
                SortProcedure();
                repaint();            
        }

        
return true;

    }


    
void SortProcedure()
    
{
        
int i1,t,exchangeCnt=0;
        
for(int pass1=0;pass1<DataArray.length;pass1++)
        
{
            
for(i1=0;i1<DataArray.length-pass1-1;i1++)
            
{
                
if(DataArray[i1]>DataArray[i1+1])
                
{
                    t
=DataArray[i1];
                    DataArray[i1]
=DataArray[i1+1];
                    DataArray[i1
+1]=t;
                    exchangeCnt
++;
                }

            }


            
for(i1=0;i1<DataArray.length;i1++)
                SortPro[pass1
+1][i1]=DataArray[i1];
            
if(exchangeCnt==0)
                
return;
        }

    }

}

 

<HTML>
 
<HEAD>
  
<TITLE> New Document </TITLE>
 
</HEAD>
 
<BODY>
  
<APPLET CODE="Bubble" WIDTH="330" HEIGHT="100">
  
</APPLET>
 
</BODY>
</HTML>

其他的排序類同

主要代碼如下

插入排序:

public void sort(int[] data) {
  
int temp; 
  
for(int i=1; i〈data.length; i++)
  
{
    
for(int j=i; (j〉0)&&(data[j]〉data[j-1]); j--)
    
{
     temp
=date[j]; 
     data[j]
=data[j-1]; 
     data[j
-1]=temp;
     }

  }
  
}

選擇排序:

public static void xuanze(int[] data) {
int temp;
for (int i = 0; i 〈 data.length; i++) {
int lowIndex = i;
for (int j = data.length - 1; j 〉 i; j--) {
if (data[j] 〉 data[lowIndex]) {
lowIndex = j;
}
}
temp=data[i];
data[i]=data[lowIndex];
data[lowIndex]=temp;
}
}

 

shell排序:

public void sort(int[] data) {
for(int i=data.length/2; i〉2; i/=2){
for(int j=0; j〈i; j++){
insertSort(data,j,i);
}
}
insertSort(data,0,1);
}

private void insertSort(int[] data, int start, int inc) {
int temp;
for(int i=start+inc; i〈data.length; i+=inc){
for(int j=i; (j〉=inc)&&(data[j]〈data[j-inc]); j-=inc){
temp=data[j];
data[j]=data[j-inc]
data[j-inc]=temp;
}
}
}

發佈了52 篇原創文章 · 獲贊 0 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章