Java/Java 연습 문제

[Java 연습 문제] String Sort (with Bubble Sort)

Joo.v7 2024. 9. 1. 13:13

문제

Generic을 이용하여 String을 정렬해라.

 

코드

import java.util.*;

public class StringBubbleSort {
// interface인 Comparable을 extends 하는 이유: T는 Comparable인 타입이어야 한다!! 
// 그래서 Comparable을 extends(확장)한 타입이다 라는 의미다!
    public static <T extends Comparable<T>> void bubbleSort(T[] array) {
        int n = array.length;
        for (int i=0; i<n-1; i++) { // 문자열의 마지막은 '\n'이기 때문에
            for (int j=0; j<n-1-i; j++) {
                if (array[j].compareTo(array[j+1]) > 0) {
                    T temp = array[j];
                    array[j] = array[j+1];
                    array[j+1] = temp;
                }
            }
        }
    }

    public static void main(String[] args) {
        Integer[] integerList = {1, 10, 7, 2, 5, 4, 9, 8, 3, 6};
        String[] stringList = {"James", "Robert", "Jone", "Michael", "William", "Noah", "Liam", "Jacob"};

        System.out.println("정렬 전: " + Arrays.toString(integerList));
        bubbleSort(integerList);
        System.out.println("정렬 후: " + Arrays.toString(integerList));

        System.out.println("정렬 전: " + Arrays.toString(stringList));
        bubbleSort(stringList);
        System.out.println("정렬 후: " + Arrays.toString(stringList));
    }
}

 

실행 결과

정렬 전: [1, 10, 7, 2, 5, 4, 9, 8, 3, 6]
정렬 후: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
정렬 전: [James, Robert, Jone, Michael, William, Noah, Liam, Jacob]
정렬 후: [Jacob, James, Jone, Liam, Michael, Noah, Robert, William]

 

 


 

2024.08.22 - [자료구조] - [자료구조] 버블 정렬 (Bubble Sort)

 

[자료구조] 버블 정렬 (Bubble Sort)

Bubble Sort(버블 정렬)인접한 2개의 레코드를 비교하여 크기가 순서대로 되어 있지 않으면 서로 교환하는 과정을 인덱스 처음부터 끝까지 진행한다.한 번의 정렬을 거치면 오른쪽 끝부터 정렬이

lightningtech.tistory.com

 

2024.08.31 - [Java] - [Java] 11. Generics

 

[Java] 11. Generics

Chapter 1: Generics 개요Generics 개요강력한 타입 검사타입 변환 감소알고리즘 일반화 Chapter 2: Generic 타입Generic 타입 선언Generic 타입 생성자Generic 객체 생성Generic 메소드 Chapter 3: Generic 메소드 선언타

lightningtech.tistory.com

 

출처: https://github.com/gikpreet/class-programming_with_java/tree/master

 

GitHub - gikpreet/class-programming_with_java

Contribute to gikpreet/class-programming_with_java development by creating an account on GitHub.

github.com