삽입 정렬은 배열을 그룹을 두 개로 나누어
E = {5,4,3,2,1} 이 있다고 하면
{5}를 key로 두고, 이보다 작은 index을 확인하여, 삽입하는 정렬 방법이다.
그 다음의 key는 4... 3.. 2 .. 1 순이다.
아래 소스에서는 j를 유심히 잘 봐야 한다.
#include<iostream>
using namespace std;
int main(){
int size,i,j;
cin >> size;
int *arr = new int[size];
for(i = 0; i < size; i++)
cin >> arr[i];
for(i = 0; i < size; i++){
int key = arr[i];
for(j = i-1; j >= 0; j--){
if(key >= arr[j])
break;
arr[j+1] = arr[j];
}
arr[j+1] = key;
}
for(i = 0; i < size; i++)
cout << arr[i] << ' ';
return 0;
}
※ 본 글은 개인 포트폴리오 혹은 공부용으로 사용하기 때문에, 무단 복사 유포는 금지하지만, 개인 공부 용도로는 얼마든지 사용하셔도 좋습니다.
반응형
'C_C++ 프로그래밍 > C_C++ 프로그래밍' 카테고리의 다른 글
[C++] 소수 구하기 (에라토스테네스의 체) (8) | 2019.04.22 |
---|---|
[C++] next_permutation을 사용한 조합 만들기 (3) | 2019.04.21 |
[C++] 버블 정렬(Bubble Sort) (0) | 2019.04.01 |
[C++] 선택정렬(Selected Sort) (0) | 2019.04.01 |
댓글