2013-06-12 111 views
-8
public class Program { 

    public void start() { 
     int[] nums = { 35, 90, 5, 45 }; 
     for(int i = nums.length; i > 0; i--){ 
      bubble(nums, i); 
     } 
     for (int i = 0; i < nums.length; i++){ 
      System.out.println(nums[i]); 
     } 
    } 

    private void bubble(int[] a, int n){ 
     int temp = 0; 
     for (int i = 0; i < (n-1); i++) { 
      if (a[i] > a[i+1]) { 
      swapElements(a, i, i+1); 
      } 
     } 
    } 

    private void swapElements(int[] a, int pos1, int pos2){ 
     int temp = a[pos1]; 
     a[pos1] = a[pos2]; 
     a[pos2] = temp; 
    } 
} 

我知道答案:)但我想知道如何解決它是如何工作的?哪些步驟先開始等等等等?你能解釋什麼與「bubble (nums, i);」和它的目的是什麼,爲什麼有一種方法它「private void bubble(int [ ] a, int n)」如解釋請,如果你可以。這個氣泡排序工作如何

/* 
    *The answers : 
    *5 
    *35 
    *45 
    *90 
    *Like how does it work out in that order? 
    *Please need Help ! :) 
    *Thanks 
    */ 
+1

我不知道問題是什麼,但這是在java中實現的冒泡排序算法,也許你應該看看它是如何工作的,以更好地理解代碼。 –

+3

你的問題是什麼? –

+0

對代碼塊使用一致的邏輯縮進。代碼的縮進旨在幫助人們理解程序流程。 *「它是如何工作的」*它的工作原理是魔法。有人自稱哈利波特應該明白這一點。 ;) –

回答

1

http://en.wikipedia.org/wiki/Bubble_sort

那幾乎總結起來...

+1

儘管這個鏈接可能回答這個問題,但最好在這裏包含答案的基本部分,並提供供參考的鏈接。如果鏈接頁面更改,則僅鏈接答案可能會失效。 - [來自評論](/ review/low-quality-posts/19059751) – vallismortis

0

第一步 - 35 90 5 45

第二步 - 35 5 45 90

步驟3 - 5 35 45 90.

Bubble sort分別比較兩個數字並切換pl (如果有必要的話)。(遞減或遞增順序,您的選擇) 首先,算法看起來是35 90,因爲它不會交換元素。 然後90 5,90> 5,交換。 35 5 90 45. 然後它看起來90 45,自90> 45,交換。

第一部分後,你得到35 5 45 90.然後該過程繼續以相同的方式。直到數組被排序。

您可以使用方法以獲得更好的可讀性和易於維護。這就是爲什麼程序員爲這項工作使用了一個單獨的泡沫和交換方法。對於像冒泡排序這樣的小代碼,均衡和維護不是問題。但是,如果項目規模中等或較大,則應針對特定作業編寫單獨的方法以實現更好的編程。