| 本帖最后由 张明 于 2012-8-16 22:05 编辑 
 这是根据老师的冒泡排序写出来的,我做了一点改进,让冒泡排序的具体过程体现出来复制代码
class Paixu 
{
public static void sop(int[] arr)
{
  for(int x=0;x<arr.length;x++)
  {
   System.out.print(arr[x]+"\t");
  }
  System.out.println();
}
public static void maopao(int[] arr)
{
  for(int x=0;x<arr.length-1;x++)
  {
   for(int y=0;y<arr.length-x-1;y++)//减X让每一次比较的元素减少,-1是避免角标越界
   {
    if(arr[y]>arr[y+1])
    {
     int temp=arr[y];
     arr[y]=arr[y+1];
     arr[y+1]=temp;
    }
    sop(arr);
   }
  }
}
public static void main(String[] args) 
{
  int[] arr={1,2,3,4,5,6,7,8,9};
  //排序前
  sop(arr);
  System.out.println("-------------");
  //排序后
  maopao(arr);
}
}
如代码所示如果arr已经是这种排列好的,还要执行的话,就会出现这种情况
 
     效率十分低下啊,不管arr是否排列好,所要经历的步骤确实相同的,这个只与arr元素个数有关,有没有一种更好的方法呢?
 
 |