日期:2014-05-20  浏览次数:20684 次

能编译 能运行 但是运算结果不对,不知道算法那儿出问题了?求高手指点,谢谢。
public class B
{
  public int i,j,t;
  public void myFun(int a[])
  {  
 
  for(i=0;i<a.length;i++)
  for(j=0;j<a.length-1;j++)
  {
   
  {
  if(a[j]>a[j+1])
t=a[j];
  a[j]=a[j+1];
  a[j+1]=t;
  }
   
  }
  }
public static void main(String args[])
  {  

  B NewB=new B();
  int [] intArrage={12,31,5,64,36,456,78,51,98,55};
  NewB.myFun(intArrage);
  for(int g=0;g<intArrage.length;g++)
  {  
//System.out.println(" ");
  System.out.println(intArrage[g]);
  }
  }
}


------解决方案--------------------
第一层的循环都没有用,本来应该是冒泡排序吧。
Java code

for(i=0;i<a.length;i++)
  for(j=0;j<a.length-1;j++)
  {
    
  {
  if(a[j]>a[j+1])
t=a[j];
  a[j]=a[j+1];
  a[j+1]=t;
  }