Skip to content

πŸ‘¨πŸ»β€πŸ’» 6μ›” 28일 κΈ°λ³Έ μ •λ ¬ μ•Œκ³ λ¦¬μ¦˜

chaeun lee edited this page Jul 5, 2024 · 4 revisions

Javaλ₯Ό μ‚¬μš©ν•΄μ„œ 버블, μ‚½μž…, 선택 정렬을 κ³΅λΆ€ν–ˆλ‹€.

1. 버블 μ •λ ¬

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.IOException;

public class Main{
    public static void main(String[] args) throws IOException{
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(System.out));

        writer.write("μ •λ ¬ν•  μˆ˜λ“€μ„ μž…λ ₯ν•˜μ„Έμš”. >>> ");
        writer.flush();
        //input 배열에 readline()ν•΄μ„œ " "둜 μž˜λΌμ„œ μ €μž₯
        String[] input = reader.readLine().split(" ");

        //intν˜•μΈ arr 배열에 input 개수만큼 int μ΄ˆκΈ°ν™” 생성
        int[] arr = new int[input.length];
        for (int i = 0; i<input.length; i++)
            //Integer.parseInt: λ¬Έμžμ—΄μ„ νŒŒμ‹±ν•˜μ—¬ μ •μˆ˜λ‘œ λ°”κΎΈλŠ” λ©”μ„œλ“œ
            arr[i] = Integer.parseInt(input[i]);

        writer.write("μ›λž˜ λ°°μ—΄: ");
        printfunc(writer, arr);

        bubbleSort(arr);

        writer.write("버블 μ†ŒνŒ… ν›„ λ°°μ—΄: ");
        printfunc(writer, arr);
    }

    public static void bubbleSort(int[] arr){
        int n = arr.length;
        boolean swap;
        for(int i=0;i<n-1;i++){
            swap =false;
            for(int j=0;j<n-1-i;j++){
                if(arr[j]>arr[j+1]){
                    int temp = arr[j];
                    arr[j] = arr[j+1];
                    arr[j+1]=temp;
                    swap = true;
                }
            }
            if(!swap) break;
        }
    }

    public static void printfunc(BufferedWriter writer, int[] arr) throws IOException{
        for (int j : arr) writer.write(j + " ");
        writer.write("\n\n");
        writer.flush();
    }
}

2. μ‚½μž… μ •λ ¬

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.IOException;

public class Main{
    public static void main(String[] args) throws IOException{
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(System.out));

        writer.write("μ •λ ¬ν•  μˆ˜λ“€μ„ μž…λ ₯ν•˜μ„Έμš”. >>> ");
        writer.flush();
        //input 배열에 readline()ν•΄μ„œ " "둜 μž˜λΌμ„œ μ €μž₯
        String[] input = reader.readLine().split(" ");

        //intν˜•μΈ arr 배열에 input 개수만큼 int μ΄ˆκΈ°ν™” 생성
        int[] arr = new int[input.length];
        for (int i = 0; i<input.length; i++)
            //Integer.parseInt: λ¬Έμžμ—΄μ„ νŒŒμ‹±ν•˜μ—¬ μ •μˆ˜λ‘œ λ°”κΎΈλŠ” λ©”μ„œλ“œ
            arr[i] = Integer.parseInt(input[i]);

        writer.write("μ›λž˜ λ°°μ—΄: ");
        printfunc(writer, arr);

        insertionSort(arr);

        writer.write("μ‚½μž… μ •λ ¬ ν›„ λ°°μ—΄: ");
        printfunc(writer, arr);
    }

    public static void insertionSort(int[] arr){
        int n = arr.length;
        int key, j;
        for(int i=1; i<n; i++){
            key = arr[i];
            for(j=i-1; j>=0 && arr[j]>key; j--) arr[j+1] = arr[j];
            arr[j+1] = key;
        }
    }

    public static void printfunc(BufferedWriter writer, int[] arr) throws IOException{
        for (int j : arr) writer.write(j + " ");
        writer.write("\n\n");
        writer.flush();
    }
}

3. 선택 μ •λ ¬

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.IOException;

public class Main{
    public static void main(String[] args) throws IOException{
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(System.out));

        writer.write("μ •λ ¬ν•  μˆ˜λ“€μ„ μž…λ ₯ν•˜μ„Έμš”. >>> ");
        writer.flush();
        //input 배열에 readline()ν•΄μ„œ " "둜 μž˜λΌμ„œ μ €μž₯
        String[] input = reader.readLine().split(" ");

        //intν˜•μΈ arr 배열에 input 개수만큼 int μ΄ˆκΈ°ν™” 생성
        int[] arr = new int[input.length];
        for (int i = 0; i<input.length; i++)
            //Integer.parseInt: λ¬Έμžμ—΄μ„ νŒŒμ‹±ν•˜μ—¬ μ •μˆ˜λ‘œ λ°”κΎΈλŠ” λ©”μ„œλ“œ
            arr[i] = Integer.parseInt(input[i]);

        writer.write("μ›λž˜ λ°°μ—΄: ");
        printfunc(writer, arr);

        selectionSort(arr);

        writer.write("선택 μ •λ ¬ ν›„ λ°°μ—΄: ");
        printfunc(writer, arr);
    }

    public static void selectionSort(int[] arr){
        int n = arr.length;
        int min;
        for(int i=0;i<n-1;i++){
            min=i;
            for(int j=i+1;j<n;j++) if(arr[min]>arr[j]) min=j;
            if(min!=i){
                int temp = arr[min];
                arr[min] = arr[i];
                arr[i]=temp;
            }
        }
    }

    public static void printfunc(BufferedWriter writer, int[] arr) throws IOException{
        for (int j : arr) writer.write(j + " ");
        writer.write("\n\n");
        writer.flush();
    }
}
Clone this wiki locally