본문으로 바로가기

삽입 정렬( Insertion Sort)

category 카테고리 없음 2018. 6. 27. 23:08

삽입 정렬(Insertion Sort)는 
자기자신을 기준으로 앞에서 있는 애들과 비교하여 자신이 들어갈 자리에 들어가는 정렬입니다.

삽입 정렬이란?
내가 들어갈 자리에 쏙 들어가겠다


※소스코드

#include <iostream> using namespace std; int main() { int dataArray[6] = { 5, 3, 2, 8, 4, 6 }; for (int i = 0; i < 5; i++) { int temp = i; while (dataArray[temp] > dataArray[temp + 1]) { int data = dataArray[temp]; dataArray[temp] = dataArray[temp+1]; dataArray[temp + 1] = data; if (--temp < 0) break; } } for (int i = 0; i < 6; i++) { cout << dataArray[i] << " "; } return 0; }

※출력결과

먼저 시간복잡도는 반복문이 두번 들어가 있기 때문에 O(N^2)를 가집니다.
하지만 삽입 정렬은 자신을 기준으로 앞에 있는 애들은  정렬이 되어있기 때문에
선택정렬,버블정렬에 비해 효율이 높고 데이터가 만약 거의 정렬되어 있다면 다른 어떤 알고리즘에 비해 굉장히 빠른 속도를 자랑합니다.

삽입정렬 시간복잡도 : O(N^2)