๐Ÿค” Bubble Sort์— ๋Œ€ํ•œ ์˜๋ฌธ์ 

package src.workshop;

import java.util.Arrays;
import java.util.HashSet;
import java.util.Random;
import java.util.Set;

public class Test {
    static StringBuilder sb = new StringBuilder();

    public static void main(String[] args) {
        long beforeTime;
        long afterTime;
        long timeDiff;

        int[] arr = NoOverlab();
        beforeTime = System.currentTimeMillis();
        selectionSort(arr);
        afterTime = System.currentTimeMillis();
        timeDiff = afterTime - beforeTime;
        System.out.println("Normal Case ์†Œ์š” ์‹œ๊ฐ„(ms): " + timeDiff);

        int[] arr2 = testWorstCase();
        beforeTime = System.currentTimeMillis();
        selectionSort(arr2);
        afterTime = System.currentTimeMillis();
        timeDiff = afterTime - beforeTime;
        System.out.println("Worst Case ์†Œ์š” ์‹œ๊ฐ„(ms): " + timeDiff);
    }

    private static int[] testNormalCase() {
        Random random = new Random();
        int[] arr = new int[100000];

        for (int i = 0; i < arr.length; i++) {
            arr[i] = random.nextInt();
        }
        return arr;
    }

    private static int[] NoOverlab() {
        Random random = new Random();
        Set<Integer> set = new HashSet<>();

        while (set.size() < 100000) {
            set.add(random.nextInt());
        }

        int[] arr = new int[set.size()];
        int i = 0;
        for (int num : set) {
            arr[i++] = num;
        }
        return arr;
    }

    private static int[] testWorstCase() {
        int[] arr = new int[100000];

        for (int i = 0; i < arr.length; i++) {
            arr[i] = arr.length - i;
        }
        return arr;
    }


    private static void bubbleSort(int[] arr) {
        int n = arr.length;

        for (int i = 0; i < n - 1; i++) {
            for (int j = 0; j < n - i - 1; j++) {
                if (arr[j] > arr[j + 1]) {
                    // Swap arr[j] and arr[j+1]
                    int temp = arr[j];
                    arr[j] = arr[j + 1];
                    arr[j + 1] = temp;
                }
            }
        }
    }
}

Bubble Sort๋ฅผ ๊ตฌํ˜„ํ•˜๊ณ  ์ฝ”๋“œ๋ฅผ ๋Œ๋ ค๋ณด์•˜๋Š”๋ฐ, ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜ค๊ธฐ ์ด์ „์— Normal Case์˜ ๊ฒฝ์šฐ์—๋Š” ๊ตํ™˜์—ฐ์‚ฐ์ด ๋ฐ˜๋“œ์‹œ ์ผ์–ด๋‚˜๋Š”๊ฒƒ์ด ์•„๋‹ˆ์ง€๋งŒ, Worst Case์˜ ๊ฒฝ์šฐ ๊ตํ™˜์—ฐ์‚ฐ์ด ๋ฌด์กฐ๊ฑด์ ์œผ๋กœ ์ผ์–ด๋‚˜๊ธฐ ๋•Œ๋ฌธ์— ๋‹น์—ฐํžˆ Worst Case๊ฐ€ ๊ฐ€์žฅ ์˜ค๋ž˜ ๊ฑธ๋ฆด ๊ฒƒ์œผ๋กœ ์ƒ๊ฐํ–ˆ๋‹ค.
๊ทธ๋Ÿฌ๋‚˜ ๊ฒฐ๊ณผ๋Š” ์˜ˆ์ƒ๊ณผ ๋‹ฌ๋ฆฌ

Normal Case ์†Œ์š” ์‹œ๊ฐ„(ms): 13697
Worst Case ์†Œ์š” ์‹œ๊ฐ„(ms): 9309

์–ด์งธ์„œ ์ด๋Ÿฐ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜ค๊ฒŒ ๋œ ๊ฒƒ์ผ๊นŒ?... ํ ..? ๋ชจ๋ฅด๊ฒ ๋‹ค ใ…‹ใ…‹
ChatGPT์— ๋ฌผ์–ด๋ณด๊ธฐ๋„ ํ–ˆ๋Š”๋ฐ

์ด์ƒํ•œ ๋‹ต์„ ๋‚ด๋†“๊ธฐ๋„ ํ•œ๋‹ค... ๊ถ๊ธˆํ•ด์„œ ๋‹ค์‹œ ๋ฌผ์–ด๋ณด๋‹ˆ ์ž๊ธฐ ์„ค๋ช…์ด ํ‹€๋ ธ๋‹ค๊ณ  ํ•˜๋„ค;;

๊ฒฐ๊ณผ์ ์œผ๋กœ ๋‹ต์„ ์•Œ ์ˆ˜ ์—†์–ด ๋™๋ฃŒ๋ถ„๋“ค๊ป˜ ํ…Œ์ŠคํŠธ๋ฅผ ๋ถ€ํƒ๋“œ๋ ธ๋”๋‹ˆ Normal Case๊ฐ€ ๋” ์˜ค๋ž˜๊ฑธ๋ฆฌ๋Š”๊ฑด ๋˜‘๊ฐ™๋‹ค๊ณ  ํ•˜์‹ ๋‹ค.

๊ทธ๋ž˜์„œ ๋Œ€์‹  ChatGPT์—๊ฒŒ ์ฝ”๋“œ๋ฅผ ์ฃผ๊ณ  100๋ฒˆ ๋Œ๋ฆฐ ํ›„ ํ‰๊ท ๊ฐ’์„ ์ถœ๋ ฅํ•ด๋‹ฌ๋ผ ๋ถ€ํƒํ•ด๋ณด์•˜๋‹ค.

Bubble Sort Normal Case ์†Œ์š” ์‹œ๊ฐ„(ms): 6672.56
Bubble Sort Worst Case ์†Œ์š” ์‹œ๊ฐ„(ms): 248296.49

์™œ ๋‚˜์˜ ํ™˜๊ฒฝ์—์„œ๋Š” ์˜ˆ์ƒํ•œ ๊ฒฐ๊ณผ๊ฐ€ ์•ˆ๋‚˜์˜ค๊ณ , GPT์—์„œ๋Š” ์˜ˆ์ƒ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜ค๋Š”์ง€ ์˜๋ฌธ์ด๋‹ค.

์ž๋ฃŒ์ •๋ฆฌ

์Šคํ”„๋ง MVC
์Šคํ”„๋ง ์ดํ•ด๋ฅผ ์œ„ํ•œ ์ž๋ฐ” ๊ณ ๊ธ‰ - 1
์Šคํ”„๋ง ์ดํ•ด๋ฅผ ์œ„ํ•œ ์ž๋ฐ” ๊ณ ๊ธ‰ - 2
์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ
๋ฐ์ผ๋ฆฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜ 9์ฃผ์ฐจ

profile
๋ฒ ์งฑ์ด๊ฐ€ ๋˜๊ณ  ์‹ถ์€ ๋ฒ ์งฑ์ด

0๊ฐœ์˜ ๋Œ“๊ธ€