Insertion Sort
삽입 정렬은 앞의 두 정렬과 같이 유명한 \(\BigO{N^2}\)정렬 중 하나이다. 하지만 앞의 두 정렬과는 크게 다른 점이 있다. 앞의 두 정렬은 정렬해야 할 값들이 다 주어져야만 알고리즘을 실행할 수 있지만 삽입 정렬은 나중에 자료가 추가되어도 알고리즘을 실행할 수 있다는 것이다. 삽입 정렬은 이미 정렬된 배열에 새로운 수를 추가하고 새로 정렬된 배열을 만들어냄으로써 정렬을 한다. 새로 정렬된 배열을 만들기 위해서는 원래 배열에서 새로 들어온 수가 들어갈 위치를 찾아야 한다. 이를 위해 맨 뒤의 큰 수들부터 차례로 비교해가며 버블 정렬하듯이 두 수를 바꾸어가며 알맞은 자리를 찾아간다. 이 아이디어를 코드로 표현하면 다음과 같다. void InsertionSort(int N,int a[]){ for(..
Sorting
2016. 9. 19. 20:55