2012-04-03 48 views
1

即時通訊尋找一種方法來打印每個通過後的數組。這是迄今爲止我的排序代碼。其基本實施打印出陣列的原始狀態和排序狀態通過每次通過打印陣列(氣泡排序)

public class bubbleSortTest 
{ 
    public static void main(String a[]) 
    { 
     int i; 
     int array[] = {90, 8, 7, 56, 123, 235, 9, 1, 653}; 

     System.out.println("Values Before the sort:\n"); 

     for(i = 0; i < array.length; i++) 
      System.out.print(array[i]+" "); 
      System.out.println(); 
      bubble_srt(array, array.length); 
      System.out.print("Values after the sort:\n"); 
     for(i = 0; i <array.length; i++) 
     System.out.print(array[i]+" "); 
     System.out.println(); 
     System.out.println("PAUSE"); 
    } 

    public static void bubble_srt(int a[], int n) 
    { 
     int i, j,t=0; 
      for(i = 0; i < n; i++) 
       { 
       for(j = 1; j < (n-i); j++) 
        { 
         if(a[j-1] > a[j]) 
          { 
           t = a[j-1]; 
           a[j-1]=a[j]; 
           a[j]=t; 
          } 

        } 
       } 
    } 
} 

回答

0

冒泡排序算法的添加新的for循環排序每次通過後打印的值的外環內。

for(i = 0; i < n; i++) 
     { 
     System.out.print(" After "+(i+1)+"st pass: "); 
     for(k=0;k<n;k++) 
      System.out.print(" "+a[k]); 
      ............... 
      ............... 
+0

如果在內部循環中沒有「交換」,則表示該列表已排序。所以你可以停止排序過程。請參閱這裏瞭解各種排序算法:http://www.sorting-algorithms.com/bubble-sort – 2012-04-03 12:37:35