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;
}
}
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值