您的位置:首页 > 其它

冒泡排序3中方法

2016-08-05 16:46 267 查看
package cn.mdln.demo;

import java.util.Arrays;

/*

 * 冒泡排序(初级版,优化版,最终版)

 */

public class Demo4 {

public static void main(String[] args) {
int array[]=new int[]{10,1,9,2,8,3,7,4,6,5};
long start=System.currentTimeMillis();
sort1(array);
long end=System.currentTimeMillis();
System.out.println("时间差:"+(end-start));
System.out.println("--------------------------------");
long start1=System.currentTimeMillis();
sort2(array);
long end1=System.currentTimeMillis();
System.out.println("时间差:"+(end1-start1));
System.out.println("--------------------------------");
long start2=System.currentTimeMillis();
sort3(array);
long end2=System.currentTimeMillis();
System.out.println("时间差:"+(end2-start2));
}

   public static void sort1(int []a)//初级版

   {
  for(int i=0;i<a.length;i++)
  {
  System.out.print("第"+(i+1)+"趟比较:");
  for(int j=0;j<a.length-1;j++)
  {
  System.out.print("第"+(j+1)+"次比较:");
  if(a[j]>a[j+1])
  {
  int temp=a[j];
  a[j]=a[j+1];
  a[j+1]=temp;
  }
  System.out.println(Arrays.toString(a));
  }
  }

   }

   public static void sort2(int []a)//优化版

   {
  for(int i=0;i<a.length;i++)
  {
  System.out.print("第"+(i+1)+"趟比较:");
  for(int j=0;j<a.length-1-i;j++)
  {
  System.out.print("第"+(j+1)+"次比较:");
  if(a[j]>a[j+1])
  {
  int temp=a[j];
  a[j]=a[j+1];
  a[j+1]=temp;
  }
  System.out.println(Arrays.toString(a));
  }
  }

   }

   public static void sort3(int []a)//最终版

   {
  boolean flag=true;
  for(int i=0;i<a.length;i++)
  {
       flag=true;
  System.out.print("第"+(i+1)+"趟比较:");
  for(int j=0;j<a.length-1-i;j++)
  {
  System.out.print("第"+(j+1)+"次比较:");
  if(a[j]>a[j+1])
  {
  int temp=a[j];
  a[j]=a[j+1];
  a[j+1]=temp;
  flag=false;
  }
  System.out.println(Arrays.toString(a));
  }
  if(flag)
  break;
  }

   }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: