알고리즘

[알고리즘] 삽입 정렬 (Insertion Sort)

행복하개! 2020. 8. 24. 15:30

삽입 정렬 (Insertion Sort)

삽입하기 적절한 위치를 찾으면 그 위치에 삽입을 하되, 원래 있던 숫자들은 뒤로 한칸씩 민 후, 아이템을 추가한다.

 

1) 입력

17

14

11

19

13

15

 

2) 절차

i = 1

i 위치의 값을 앞 부분의 적당한 위치에 끼워 넣는다.

17

14

11

19

13

15

14

17

11

19

13

15

 

i = 2

14

17

11

19

13

15

11

14

17

19

13

15

 

i = 3

11

14

17

19

13

15

 

i = 4

11

14

17

19

13

15

11

13

14

17

19

15

 

i = 5

11

13

14

17

19

15

11

13

14

15

17

19

 

 

3) 요약

void insertionSort(int[] a) {
    for (int i = 1; i < a.length; ++i) {
        int value = a[i];
	// a 배열의 0 에서 i-1 사이에서 value 보다 큰 값들을
	// 뒤로 한 칸씩 이동하고, 그 값들 앞에 value를 넣는다.
    }
}