Computer_Language/Java

[Java] 7. 자바의 배열과 정렬

Joo-Topia 2019. 12. 28. 15:01

자바의 배열 사용법과 배열의 정렬에 대해 간단히 정리하는 내용이다.

 

자바의 배열 선언

자바에서 배열을 선언할 때 사용하는 방법은 몇 가지 있는데 그중 가장 기초적인 문법을 예시로 사용하였다.

int size = 10;
//int [] arr = new int[size];
int [] arr = new int[] {3, 5, 7, 1, 2, 4, 6, 9, 0, 8};

for(int i = 0; i < size; i++){
    System.out.print(arr[i] + " ");
}
System.out.println();

위에서 사용한 방법은 직접 배열의 원소를 초기화하면서 선언하는 방법이다.

주석 처리된 줄을 사용하여 빈 배열을 선언할 수 있다.

 

C언어에서 배열을 사용할 때와 문법은 거의 비슷하지만 malloc함수같은 동적 할당에 대한 부분을 고려하지 않아도 된다는 것이 자바(매니지드) 언어의 장점이라고 생각한다.
"가비지 커렉터 = 매니지드언어"라고 정의할 수는 없지만, 매니지드 언어이기 때문에 가비지 커렉터가 존재하고, 덕분에 조금 더 편한 프로그래밍이 가능해졌다!

 

배열의 정렬

배열을 사용하는 기본적인 문법에 적어도 정렬 정도는 할 줄 알아야 간단한 프로그래밍 문제를 풀 수 있다.

아래는 배열을 정렬하는 간단한 예시코드와 결과이다.

package project;

public class Main {
    public static void main(String[] args) {
        int size = 10;
        //int [] arr = new int[size];
        int [] arr = new int[] {3, 5, 7, 1, 2, 4, 6, 9, 0, 8};

        for(int i = 0; i < size; i++){
            System.out.print(arr[i] + " ");
        }
        System.out.println();

        //버블정렬 알고리즘 구현
        for(int i = 0; i < size - 1; i++){
            for(int j = i + 1; j < size; j++){
                if(arr[i] > arr[j]){
                    int temp = arr[j];
                    arr[j] = arr[i];
                    arr[i] = temp;
                }
            }
        }
        
        for(int i = 0; i < size; i++){
            System.out.print(arr[i] + " ");
        }
        System.out.println();
    }
}

버블 정렬은 정말 쉽게 프로그래밍 할 수 있는 정렬 알고리즘의 종류 중 하나이다. 하지만 시간 복잡도가 O(n^2)이기 때문에 실제 알고리즘 문제에서 버블 정렬을 사용한다면 시간 초과가 될 것이다.

시간 복잡도가 낮은 퀵 정렬과 같은 알고리즘을 직접 구현해서 사용하는 것도 좋은 방법이지만, 시간제한이 빡빡한 문제가 아니라면 sort함수를 사용하는 것을 추천한다. 아래는 배열에서 sort함수를 사용한 예시이다.

package project;

import java.util.Arrays;

public class Main {
    public static void main(String[] args) {
        int size = 10;
        //Array.sort 메소드 사용법
        int[] arr2 = {3, 5, 7, 1, 2, 4, 6, 9, 0, 8};
        
        Arrays.sort(arr2);
        for(int i = 0; i < size; i++){
            System.out.print(arr2[i] + " ");
        }
        System.out.println();
        
    }
}

아주 간단한 자바의 배열 사용법에 대해서 공부해봤다.

요즘 입사 전에 할 일이 너무 많아서 개발과 블로그 관리를 잘 못하고 있다..ㅜ 입사 후에 다시 꾸준히 공부하는 개발자가 될 것이다!

*구름 edu의 "바로 실행해보면서 배우는 JAVA (자바)"을 수강 후 정리한 내용입니다.
소스코드는 깃허브 저장소를 참고! (Java언어 외 다양항 프로그래밍 예제도 볼 수 있다.)