삽입정렬

자신의 위치를 찾아 삽입함으로써 정렬하는 알고리즘입니다

알고리즘 이해하기

배열의 두번째 요소부터 진행하며 그 앞쪽의 자료들과 비교하며 자신의 위치를 찾아 삽입하며 삽입이 완료되면 다음 요소부터 과정을 반복합니다.
{3, 5, 2, 1, 4} 를 정렬하는 모습을 살펴보겠습니다..


알고리즘 구현하기

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
import java.util.Scanner;
 
public class Sort {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int count = sc.nextInt();
        int[] arr = new int[count];
        
        for(int i=0; i<count; i++) {
            arr[i] = sc.nextInt();
        }
        
        arr = sort(arr);
        for(int i=0; i<count; i++) {
            System.out.println(arr[i]);
        }
    }
    
    private static int[] sort(int[] arr) {
        for(int i=1; i<arr.length; i++) {
            for(int j=i; j>=1; j--) {
                if(arr[j-1> arr[j]) {
                    int temp = arr[j];
                    arr[j] = arr[j-1];
                    arr[j-1= temp;
                }
            }
        }
        return arr;
    }
}
 
cs


'알고리즘 > 정렬' 카테고리의 다른 글

버블정렬(Bubble Sort)  (0) 2019.09.07

버블정렬

버블정렬이란 인접한 두 개의 원소를 비교하며 자리를 계속 교환하는 방식입니다.

알고리즘 이해하기

두 인접한 원소를 검사하여 정렬하는 방법입니다. 시간 복잡도가 O(n^2)로 느린편입니다. 


{ 3, 2, 1, 5, 4 }을 원소로 가지는 배열 arr을 오름차순으로 정렬해보도록 하겠습니다.


위의 과정을 반복합니다. 우연히도 이미 정렬이 완료되어있네요 ㅎㅎ..


알고리즘 구현하기

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
public class BubbleSort {
    public static void main(String[] args) {
        int[] arr = { 32154 };
 
        arr = bubbleSort(arr);
        for (int i = 0; i < 5; i++) {
            System.out.println(arr[i]);
        }
    }
 
    private static int[] bubbleSort(int[] arr) {
        for (int i = 0; i < arr.length; i++) {
            for (int j = 0; j < arr.length - i - 1; j++) {
                if (arr[j] > arr[j + 1]) {
                    int temp = arr[j + 1];
                    arr[j + 1= arr[j];
                    arr[j] = temp;
                }
            }
        }
        return arr;
    }
}
 
cs


'알고리즘 > 정렬' 카테고리의 다른 글

삽입정렬(Insert Sort)  (0) 2019.09.08

+ Recent posts