자바를 이용한 버블 정렬 구현 중 문제가 발생합니다.

조회수 2565회
import java.util.Scanner;

public class BubbleSort {
    public static void main(String[] args) {
        int inputNumber = 0, temp = 0;
        int[] bubbleArray = new int[5];

        Scanner scanner = new Scanner(System.in);

        System.out.println("============================");
        for(int i = 0; i < bubbleArray.length; i++) {
            System.out.print("Input Number : ");
            inputNumber = scanner.nextInt();
            bubbleArray[i] = inputNumber;
        }

        for(int i = 0; i < bubbleArray.length; i++) {
            for(int j = 1; j < bubbleArray.length - 1; j++) {
                if(bubbleArray[i] > bubbleArray[j]) {
                    temp = bubbleArray[i];
                    bubbleArray[i] = bubbleArray[j];
                    bubbleArray[j] = temp;
                } else {
                    break;
                }
            }
        }

        System.out.println("Complete Bubble Sorting Result :" + bubbleArray);
        System.out.println("============================");
        scanner.close();
        System.exit(0);
    }
}

간단하게 5 개의 수를 임의로 입력받아 버블 정렬을 수행하는 코드를 작성하고 있습니다. inputNumber 에 입력받은 값을 정렬 후 출력하면 아래와 같은 이상한 형태의 숫자가 출력됩니다. 어디가 문제일까요?

이미지

  • (•́ ✖ •̀)
    알 수 없는 사용자

1 답변

  • 배열은 값의 집합이라고 생각하시면 됩니다. 질문하신 부분처럼 배열을 직접 출력하게 될 경우 배열의 주소 값이 출력됩니다.

    배열 안의 특정 값에는 인덱스를 통해서 접근합니다. 아래는 몇가지 예시입니다.

    int[] bubbleArray = {1, 2, 3, 4, 5};
    
    System.out.println(bubbleArray);  //주소값 출력
    System.out.println(bubbleArray[0]); // 1
    
    for (int index = 0; index < bubbleArray.length; index++) {
        System.out.println(bubbleArray[index]);
    } 
    
    for (int index : bubbleArray) {
        System.out.println(index);
    }
    
    System.out.println(Arrays.toString(bubbleArray));
    
    

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)