pseudo code
입력: 크기가 n인 배열 A
출력: 정렬된 배열 A
for i = 1 to n-1 {
CurrentElement = A[i]
j <- i-1
while(j >= 0) and (A[j]>CurrentElement){
A[j+1] = A[j]
j <- j-1
}
A[j+1] <- CurrentElement
}
return A
c 코드
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
void swap(int* n1, int* n2) {
int tmp = *n1;
*n1 = *n2;
*n2 = tmp;
}
void InsertionSort(int* A, int n) {
int left = 0;
for (int i = 1; i < n;i++) {
left = A[i];
int j = i - 1;
while (j >= 0 && A[j] > left) {
A[j + 1] = A[j];
j = j - 1;
}
A[j + 1] = left;
}
}
실행시간
8개 : 0.000
10,000개 : 0.045
100,000개 : 4.515
600,000개 : 161.678
1,000,000개 : 449.955
'전공공부 > 알고리즘 공부' 카테고리의 다른 글
(정렬) 정리 (0) | 2022.03.25 |
---|---|
(정렬) 버블정렬 (0) | 2022.03.24 |
(정렬) 퀵정렬 (0) | 2022.03.23 |
(정렬) 합병정렬 코드 (0) | 2022.03.22 |
(정렬) 선택정렬 코드 (0) | 2022.03.22 |