冒泡法

来源:互联网 发布:命令行运行java 编辑:程序博客网 时间:2024/04/19 04:17

这是我的第一个Java 冒泡法例子,分两种:纯数字冒泡法 和字符串中的数字冒泡法

public class String_Maopao {
  
   public static void main(String[] args){
   
   //测试如何将 int -> String
   //int i2s_origin = 128;
   //String i2s = String.valueOf(i2s_origin);
   //System.out.println(i2s);
  
   //测试如何将 String -> int
   //String my_buf = new String("27");
   //int n = Integer.parseInt(my_buf);
   //System.out.println(n);
   
   //测试如何将 char -> String
   //char[] cc = {'a','b','2','$','c',','};
   //String c2s = String.valueOf(cc);
   //System.out.print(c2s.indexOf(','));
  
   //1。纯数字冒泡法
  
   int[] a={2,7,4,88,71,2005};

   maopao(a,a.length);
  

 
   //2。字符串中的数字冒泡法
     
   int i,j,t=0;
           
   String test = new String("34,123,-22,64,26");
   //System.out.println(test.length()); test的长度为16
   //System.out.println(test.charAt(15)); test第15号字符为6,没有第16号字符
   //测试substring(int,int)参数:第一个为起始位,第二个为结束位(不包括该位)!
   //System.out.println(test.substring(14,16));  
  
  
   //疑点:这种方法一点不灵活,能否自定义一种类的构造方法呢?
   int num = getCompareNumber(test);//num为字符串中需要比较的数字的个数
   String[] isub = new String[num];
  
   j = 0;
   int n_start = 0;
  
   for(i=0;i<test.length();i++)
   {
     if( i == test.length()-1 )
     { 
       isub[j] = test.substring(n_start,i+1);
       System.out.println( "字符串的数为:" + Integer.parseInt(isub[j]) );
       j++;
     }
     else
     {
       if( test.charAt(i) == ',' )
       {
         isub[j] = test.substring(n_start,i);
         System.out.println("字符串的数为:" + Integer.parseInt(isub[j]) );
         n_start = i+1;
         j++;
       }//if
     }//else
   } 

   t = 0;
   int m = j;
  
   //疑点:这种方法一点不灵活,能否自定义一种类的构造方法呢?
   num = getCompareNumber(test);  
   int[] _isub = new int[num];
  
   for(i=0;i<m;i++)
     _isub[i] = getint(isub,i);
    
   maopao(_isub,m);
  
   }//main
  
  
   public static void maopao(int[] _a,int max)
   {
     int _j,_i,_t=0;

     for (_j=0;_j<max-1;_j++)
       for (_i=0;_i<max-1-_j;_i++)
       {
         if (_a[_i]<_a[_i+1])
         {_t=_a[_i];_a[_i]=_a[_i+1];_a[_i+1]=_t;}    
       }
       
     for (_i=0;_i<max;_i++)
       System.out.println(_a[_i]);  
  
   }//maopao
  
  
   public static int getint(String[] ss,int ii)
   { 
     return Integer.parseInt(ss[ii]);
   }
  
   public static int getCompareNumber(String _ss)
   {
     int i,isub_n = 0;

     for(i=0;i<_ss.length();i++)
     {
       if( _ss.charAt(i) == ',' )
         isub_n ++;
     }
     return isub_n+1;
   }
   //public static extract
  
}//public class String_Maopao

class Myarray {

  int _n;
  int[] my_array;
 
  public int[] Myarray(int[] _array){ 
   
    for(_n=0;_n<_array.length;_n++)
      my_array[_n] = _array[_n];
 
  return my_array;
  }
 
  public int length(){
    return my_array.length;
  }

}//class Myarray