본문 바로가기
알고리즘

삽입 정

by 휘성티비 2024. 2. 18.

 

다음 숫자들을 오름차순 정렬하시오

> 1 10 5 8 7 6 4 3 2 9

 

삽입 정렬

필요한 경우에만 위치를 바꾸어 정렬하는 삽입 정렬에 대해 알아볼 것이다. 비교적 느리지만 조금은 복잡한 구조이다.

 

#include<bits/stdc++.h>
using namespace std;

int main()
{
	int j,temp;
	int arr[10] = {1,10,5,8,7,6,4,3,2,9};
	for(int i=0; i<9; i++){
		j = i;
		while(arr[j]>arr[j+1]){
			temp = arr[j];
			arr[j] = arr[j+1];
			arr[j+1] = temp;
			j--;
		}
	}
	for(int i=0; i<10; i++)
		cout << arr[i] << ' ';
	return 0;
}

 

시간복잡도

계산되는 범위가 10~1까지 줄어드는 것을 보아

선택, 버블 정렬과 같은 원리로 시간복잡도가 성립된다는 것을

알 수 있지만 연산은 삽입 정렬이 더 빠름

 

만약 거의 정렬된 상태라면 삽입 정렬이 어떤 알고리즘보다 빠르다고 할 수 있다.

 

'알고리즘' 카테고리의 다른 글

선택 정렬  (0) 2024.02.18
버블 정렬  (0) 2024.02.18
퀵 정렬  (0) 2024.02.18
병합 정렬  (0) 2024.02.18
힙 정렬  (0) 2024.02.18