Computer >> 컴퓨터 >  >> 프로그래밍 >> Java

문장의 단어를 오름차순으로 정렬하는 Java 프로그램 작성 방법


문장의 단어를 오름차순으로 정렬하는 것은 문자열 처리에서 자주 활용되는 기본적인 작업입니다. 이 글에서는 Java의 삽입 정렬(Insertion Sort) 알고리즘을 이용해 문장 내 단어들을 글자 수(길이) 기준으로 오름차순 정렬하는 방법을 예제 코드와 함께 살펴보겠습니다.

동작 원리

삽입 정렬은 두 번째 요소부터 시작하여, 현재 요소를 그 앞에 있는 이미 정렬된 요소들과 하나씩 비교하면서 자신의 올바른 위치에 삽입하는 방식으로 동작합니다. 이 예제에서는 단어 자체가 아니라 각 단어의 길이를 비교 기준으로 사용하므로, 길이가 짧은 단어일수록 배열의 앞쪽에 배치됩니다.

예제 코드

import java.util.*;
public class Demo{
    static void sort_elements(String []my_str, int n){
        for (int i=1 ;i<n; i++){
            String temp = my_str[i];
            int j = i - 1;
            while (j >= 0 && temp.length() < my_str[j].length()){
                my_str[j+1] = my_str[j];
                j--;
            }
            my_str[j+1] = temp;
        }
    }
    public static void main(String args[]){
        String []my_arr = {"This", "is", "a", "sample"};
        int len = my_arr.length;
        sort_elements(my_arr,len);
        System.out.print("The sorted array is : ");
        for (int i=0; i<len; i++)
        System.out.print(my_arr[i]+" ");
    }
}

출력 결과

The sorted array is : a is This sample

코드 설명

'Demo'라는 이름의 클래스 안에는 'sort_elements'라는 정적 메서드가 정의되어 있습니다. 이 메서드는 문자열 배열과 배열의 크기를 매개변수로 받아, 배열을 순회하면서 각 단어의 길이를 확인하고 길이를 기준으로 요소들의 위치를 조정합니다.

main 메서드에서는 "This", "is", "a", "sample" 네 개의 단어로 구성된 문자열 배열을 선언하고, 배열의 길이를 변수에 저장합니다. 이후 'sort_elements' 메서드를 호출하여 정렬을 수행한 뒤, 반복문을 통해 정렬된 배열의 모든 요소를 콘솔에 출력합니다.

출력 결과를 보면 길이가 1인 "a", 2인 "is", 4인 "This", 6인 "sample" 순서로 단어들이 정렬된 것을 확인할 수 있습니다. 만약 사전순(알파벳순) 정렬이 필요하다면 비교 조건을 temp.compareTo(my_str[j]) 형태로 변경하면 됩니다.