import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
public class Test extends Applet implements ActionListener               //先输入需要排几个数,然后排序,最后查找
{ Label prompt2=new Label("please input how many number");
TextField manytext=new TextField(5);
Button manybutton=new Button("一共有几个数"); Label prompt=new Label("please input number");
TextField input=new TextField(5);
Button sortbtn=new Button("sort");
int []dataarray=new int[10];
int datainputed=0;
int datainputed2=0;    
int []comparept=new int[10];
String msg="";

public void init()
{
add(prompt2);
add(manytext);
add(manybutton);
add(prompt);
add(input);
add(sortbtn);


manybutton.addActionListener(this);
input.addActionListener(this);
sortbtn.addActionListener(this);
}

public void actionPerformed(ActionEvent e)             //check
{
      
          if(e.getSource()==manybutton)          
        {
         datainputed2=Integer.parseInt(manytext.getText());
        int []dataarray=new int[datainputed2];
      int []comparept=new int[datainputed2];
               
      
                Graphics g=new Graphics();                                 //此外问题,初始化数组
for(int i=0;i<dataarray.length;i++)
          g.drawString(Integer.toString(dataarray[i]),10+30*i,40);
for(int i=0;i<comparept.length;i++)
    g.drawString(Integer.toString(comparept[i]),10+30*i,70);
g.drawString(msg,10,100);
      
               
          }
      
           if(e.getSource()==input)
  {
     
dataarray[datainputed++]=Integer.parseInt(input.getText());
if(datainputed<datainputed2)
{
prompt.setText("hava input"+datainputed+"number,please go on");
input.setText("");
}
else
{
prompt.setText("stop!");
input.setVisible(false);
}

  }
  
  
  if(e.getActionCommand()=="sort")        //sort
{
sortprocedure();
sortbtn.setLabel("find");
prompt.setText("please number");
input.setVisible(true);
input.setText("");
repaint();
}

  if(e.getActionCommand()=="find")                       //find
  {
int k=bisearch(Integer.parseInt(input.getText()));
if(k==-1)
     msg="nothing";
else
     msg="the number is"+k;
repaint();
  }
}        void sortprocedure()                                    //sub sort
        {
int pass,i,temp;
for(pass=1;pass<dataarray.length;pass++)
{
temp=dataarray[pass];
for(i=pass-1;i>=0;i--)
{
if(dataarray[i]<=temp)
break;
else
dataarray[i+1]=dataarray[i];
}
dataarray[i+1]=temp;
}
        }

int bisearch(int key)                             // sub find
{
int low=0;
int high=dataarray.length-1;
int mid;
int i=0;

while(low<=high)
{
mid=(high+low)/2;
comparept[i++]=dataarray[mid];
if(dataarray[mid]==key)
return mid;
else if(dataarray[mid]<key)
low=mid+1;
else
    high=mid-1;
}
return -1;
}
}