알고리즘 기본

삽입 정렬(Insertion Sort) (C++)

develop.me.z 2021. 1. 6. 01:00

삽입 정렬은 적절한 위치에 삽입는 정렬이다.

앞에서부터 두 숫자를 비교하면서 정렬하고 정렬된 숫자에서 알맞는 자리를 찾아 숫자를 삽입하는 정렬이다. 자리를 찾아가는 방법은 바로 앞 숫자와 비교하여 자기보다 작은 숫자가 나올때까지 자리를 바꿔가는 것이다.

 

조심해야할 것은 j가 0보다 작아지지않게 j-1 과 j가 아니라  j 와 j+1을 비교하는 것이고,

while 문 안에서 j>=0조건을 달아주고 j--를 하는 것은 생각해내기 쉽지 않았을 것 같다.

#include <iostream>

using namespace std;

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

 

<참조>

blog.naver.com/ndb796/221226806398

 

4. 삽입 정렬(Insertion Sort)

지난 시간까지 선택 정렬과 버블 정렬에 대해 알아보았습니다. 앞서 다룬 정렬 알고리즘 모두 시간 복잡도 ...

blog.naver.com