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();
	  }
	 
 }


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