Java/코딩테스트

버블 정렬(JAVA)

_JHS_ 2024. 4. 1. 14:27

개념)

1.앞의 값과 바로 뒤에 값을 비교한다.

2. 뒤에 값이 더 작다면 자리를 바꾼다.  (아니라면 변경 x)

빨간 네모가 움직이면서 비교하며 자리를 바꾼다.

 

 

 

정렬 Code)

public static int[] bubbleSort(int[] nums){
    for(int i=0; i<nums.length; i++){
        for(int j=0; j<(nums.length-1) - i; j++){
            if(nums[j] > nums[j+1]){
                swap(nums,j,j+1);
            }
        }
    }
    return nums;
}

public static void swap(int[] nums, int i, int j){
    int tmp = nums[i];
    nums[i] = nums[j];
    nums[j] = tmp;
}

 

 

 

(전체) Code)

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

class Test{
    public static void main(String[] args) throws IOException {
        BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));

        String s = bf.readLine();
        StringTokenizer st = new StringTokenizer(s);
        int[] nums = new int[st.countTokens()];

        for(int i=0; i<nums.length; i++){
            nums[i] = Integer.parseInt(st.nextToken());
        }

        nums = bubbleSort(nums);

        print(nums);
    }

    public static int[] bubbleSort(int[] nums){
        for(int i=0; i<nums.length; i++){
            for(int j=0; j<(nums.length-1) - i; j++){
                if(nums[j] > nums[j+1]){
                    swap(nums,j,j+1);
                }
            }
        }
        return nums;
    }

    public static void swap(int[] nums, int i, int j){
        int tmp = nums[i];
        nums[i] = nums[j];
        nums[j] = tmp;
    }
    
    public static void print(int[] nums) throws IOException{
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        
        for(int num : nums){
            bw.write(num+ " ");
        }
        bw.flush();
        bw.close();
    }
}