2013-06-12 72 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.然后该过程继续以相同的方式。直到数组被排序。

您可以使用方法以获得更好的可读性和易于维护。这就是为什么程序员为这项工作使用了一个单独的泡沫和交换方法。对于像冒泡排序这样的小代码,均衡和维护不是问题。但是,如果项目规模中等或较大,则应针对特定作业编写单独的方法以实现更好的编程。