Java冒泡排序

冒泡排序———数组(int []array)

wKioL1gN7HOymTewAAFjK2N9VsQ893.png-wh_50

/*
冒泡排序实现
(1)找出数组中的最大值并赋值给数组的最后的位置
(2)N个元素最多需要N-1趟
(3)判断数组中的元素是否还是无序。
(4)实现任意数组都可以由小到大排序(方法); 
 */
 
 public class Bubble{
	 public static void main(String[]args)
	 {
		 //静态声明一个数组
		 int []a={23,45,65,76,7,67,8,32};
		 //实现找出数组中的最大值并赋值给数组的最后的位置
		 findMax(a);
		 //实现进行a.length-1趟,每一趟都判断a.length-1
		  rank(a);
		 //判断数组中的元素是否还是无序。实现任意数组都可以由小到大排序(方法)
		 bubble(a);
	 }
	 
	 //实现找出数组中的最大值并赋值给数组的最后的位置
	 public static void findMax(int[]b)
	 {
		 int temp=0;
		 for(int i=0;i<b.length-1;i++)
		 {
			 if(b[i]>b[i+1])
			 {
				 temp=b[i];
				 b[i]=b[i+1];
				 b[i+1]=temp;
			 }
		 }
		 
		 System.out.println("最大值赋值到数组的末尾:");
		 for(int i=0;i<b.length;i++)
		 {
			 System.out.print(b[i]+"\t");
		 }
		 System.out.println();
	 }
	 //实现进行a.length-1趟,每一趟都判断a.length-1
	 public static void rank(int []c)
	 {
		 System.out.println("由小到大输出:");
		 int temp=0;//交换的盒子
		 for(int j =1;j<c.length;j++)
		 {
			for(int i=0;i<c.length-1;i++)
			{
				if(c[i]>c[i+1])
				{
					temp=c[i];
					c[i]=c[i+1];
					c[i+1]=temp;
				}
			}
		 }
		
		for(int num:c){
     		System.out.print(num+"\t");
	    }
		System.out.println();
	 }
	  //判断数组中的元素是否还是无序。实现任意数组都可以由小到大排序(方法)
	  public static void bubble(int[]d)
	  {
		  int temp=0;
		 
		  
		  for(int i=1;i<d.length;i++)
		  {
			  /* 做一个标志,标志的作用当数组中的元素
			  已经是有序是就跳出循环不再进行下一趟比较 */
			  boolean flag=true;  
			  for(int j=0;j<d.length-i;j++)
			  {
				 if(d[j]<d[j+1])
				 {
					 temp=d[j];
					 d[j]=d[j+1];
					 d[j+1]=temp;
					 flag=false;
				 }
				if(flag)
				{
					break;
				}					
			  } 
		  }
		   System.out.println("从大到小排序:");
		   for(int num:d)
			  {
				  System.out.print(num+"\t");
			  }
			  
			  System.out.println();
	  }
	 
 }


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章