본문 바로가기
개발

버블 정렬 알고리즘으로 오름차순 정렬 구현하기

by hes3518 2024. 11. 13.
728x90

버블 정렬 알고리즘: 오름차순 정렬 구현하기

안녕하세요! 프로그래밍 세상에서 새로운 도전을 즐기는 여러분, 오늘은 Java를 활용하여 간단한 오름차순 정렬 알고리즘인 버블 정렬을 구현해 보겠습니다. 이 포스트에서는 정렬 알고리즘의 기초를 살펴보고, 코드의 단계별 설명을 통해 실제로 어떻게 구현하는지 알아보겠습니다.

들어가며

정렬은 프로그래밍에서 자주 등장하는 기본적인 작업 중 하나입니다. 무질서하게 나열된 데이터를 정렬하는 것은 다양한 애플리케이션에서 필수적인 기능입니다. 예를 들어, 사용자가 입력한 성적, 할인된 가격 목록, 고객 리스트 등을 정렬하여 보여주는 경우가 많죠.

그럼 지금부터 버블 정렬 알고리즘을 통해 오름차순으로 숫자를 정렬하는 방법을 배워보겠습니다.

코드 작성하기

아래는 숫자를 오름차순으로 정렬하는 간단한 버블 정렬 코드입니다.

package com.baek.algo.step12;

import java.util.Scanner;

public class Q2750 {

    public static void main(String[] args) {    
        Scanner sc = new Scanner(System.in);

        int n = sc.nextInt();
        int[] arr = new int[n];

        for(int i = 0; i < n; i++) {
            arr[i] = sc.nextInt();
        }

        for(int i = 0; i < n; i++) {
            for(int j = i + 1; j < n; j++) {
                if(j == n) {
                    break;
                }

                if(arr[i] > arr[j]) {
                    int temp = arr[j];
                    arr[j] = arr[i];
                    arr[i] = temp;
                }
            }

            System.out.println(arr[i]);
        }

        sc.close();
    }
}

코드 설명하기

입력받기

코드는 사용자로부터 첫 번째 줄에 정렬할 수의 개수 N을 입력받고, 그 뒤에 N개의 숫자를 입력받아 배열에 저장합니다.

  • Scanner sc = new Scanner(System.in);: 사용자로부터 입력을 받을 준비를 합니다.
  • int n = sc.nextInt();: 정렬할 숫자의 개수를 입력받습니다.
  • int[] arr = new int[n];: 입력받은 개수만큼의 배열을 생성합니다.

버블 정렬 로직

버블 정렬의 핵심은 서로 인접한 두 수를 비교하여 큰 값을 뒤로 보내는 것입니다. 이 과정을 반복함으로써 전체 배열이 정렬됩니다.

  • 두 개의 for문을 사용하여 인접한 두 요소를 비교하고, 필요에 따라 위치를 바꿉니다.
  • if(arr[i] > arr[j]): 현재 위치의 숫자가 더 크면 서로 위치를 바꿉니다. 이를 통해 가장 큰 숫자가 배열의 끝으로 이동하게 됩니다.

결과 출력

정렬이 완료된 후에는 배열의 내용을 순차적으로 출력합니다.

예제 실행 결과

이 코드를 실행하면 사용자가 입력한 숫자가 오름차순으로 정렬되어 출력됩니다.

예를 들어, 입력으로

5
3
1
4
1
5

를 제공하면, 출력 결과는 다음과 같습니다.

1
1
3
4
5

추가적으로

가장 기본적인 정렬 알고리즘인 버블 정렬은 간단하지만 큰 데이터 집합에 대해서는 효율이 떨어질 수 있습니다. 따라서 다음과 같은 방법으로 코드를 확장할 수 있습니다:

  • 다양한 정렬 알고리즘 구현: 퀵 정렬, 병합 정렬 등 다른 정렬 알고리즘을 구현하여 성능 비교.
  • 다양한 데이터 타입 지원: 문자열이나 사용자 정의 객체에 대한 정렬 기능 추가.
  • 입력 데이터 검증 기능: 사용자가 올바른 형태로 데이터를 입력했는지 확인하는 기능 추가.

마무리하며

오늘은 Java를 사용하여 오름차순 정렬을 구현하는 방법에 대해 알아보았습니다. 기본적인 알고리즘을 학습하는 것은 프로그래밍 능력을 향상시키는 기초가 될 것입니다. 여러분의 프로젝트나 학습에 도움이 되길 바랍니다!

질문이나 의견이 있으시면 언제든지 댓글로 남겨주세요. 그럼 다음 포스트에서 만나요!

728x90