2013-06-12 3 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

이 링크가 질문에 대답 할 수 있지만 여기에 답의 핵심 부분을 포함하고 참조 용 링크를 제공하는 것이 좋습니다. 링크 된 페이지가 변경되면 링크 전용 답변이 유효하지 않게 될 수 있습니다. - [From Review] (리뷰/저품절 게시물/19059751) – vallismortis

0

1 단계 - 35 90 5 45

2 단계 - 35 5 45 90

STEP3 - 5 35 45 90.

버블 정렬은 각각 두 개의 숫자를 비교하여 pl 에이스가 필요한 경우 (증가 또는 증가하는 주문, 선택) 먼저 알고리즘은 35 < 90부터 요소를 교체하지 않고 계속 진행합니다. 그 다음 90 5, 90> 5, 교환. 35 5 90 45. 90> 45이므로 90 45가 보인다.

첫 번째 부분이 끝나면 35 5 45 90이됩니다. 그런 다음 과정은 동일한 방식으로 진행됩니다. 배열이 소트 될 때까지.

당신은 더 나은 가독성과 쉬운 유지 보수를 위해 방법을 사용합니다. 그래서 프로그래머는 그 작업을 위해 별도의 버블 및 스왑 방법을 사용했습니다. 거품 정렬과 같은 작은 코드 조각의 경우 판독 가능성과 유지 관리가 문제가되지 않습니다. 그러나 프로젝트가 중간 규모 또는 대규모 인 경우 더 나은 프로그래밍을 위해 특정 작업에 대한 별도의 방법을 작성해야합니다.

관련 문제