Insertion Sort
- 밀어서 삽입정렬이라고 이해하자
#include <stdio.h>
#include <stdlib.h>
void insertionSort(int* arr, int size)
{
int i, j;
int key;
for( i=1; i<size; i++ )
{
key = arr[i];
for( j=i-1; j>=0; j-- )
{
if( key < arr[j] )
arr[j+1] = arr[j];
else {
//arr[j+1] = key; (X)
break;
}
}
arr[j+1] = key; // key가 제일 작아서 맨 앞애까지 오는 경우
}
for( i=0; i<size; i++ )
printf("%d ", arr[i]);
}
int main (void)
{
int size;
int* arr;
scanf("%d", &size);
for ( int i=0; i<size; i++ )
scanf("%d", &arr[i]);
insertionSort(arr, size);
}
'Computer Science > Algorithm' 카테고리의 다른 글
Merge Sort (병합 정렬) (0) | 2020.09.03 |
---|---|
[배열과 포인터] 일차원 배열과 이차원 배열 및 포인터 표기 방법 (0) | 2020.09.01 |
[구조체] struct 선언 방법들 (0) | 2020.09.01 |
Selection sort(선택 정렬) (0) | 2020.08.31 |
Bubble sort(버블소트) (0) | 2020.08.31 |