인생마린
어떤 공부 블로거의 금서목록
인생마린
전체 방문자
오늘
어제
  • 전체 (155)
    • C언어 (19)
    • Python (14)
      • Flask (0)
    • Coding Challenge (11)
      • Code Clone & Review (0)
      • Toy Project (0)
      • 오늘의 코드 (5)
    • Algorithm (6)
    • JAVA (8)
    • 웹 (8)
      • Javascript (3)
    • 정보보안 (19)
    • 기타 (21)
    • 일기는일기장에 (2)
    • 리눅스 (4)
    • 철학 (1)
    • 주식 (14)
    • AI (2)
    • 독후감 (13)
    • 프로그래밍 (4)
    • 게임 (1)
    • Devops (2)
      • CI_CD (2)
      • AWS (0)
    • Flutter (3)

블로그 메뉴

  • 홈
  • 태그
  • 미디어로그
  • 위치로그
  • 방명록

공지사항

인기 글

태그

  • 가상화폐
  • 폭락
  • best of best
  • 비트코인
  • Sphinx
  • c언어
  • Java
  • Regex
  • 카카오톡봇
  • 불편한사회
  • Regular Expression
  • turtle
  • 백테스팅
  • 정규표현식
  • TFT
  • smtplib
  • 코인
  • Flutter
  • 주식 #배당주
  • flask
  • 주린이 #주식
  • 해커톤
  • python #eval #dictionary
  • 주식 #ETF
  • 우영우 #패러디논란
  • vpn
  • Python
  • 테라
  • 퀴즈봇
  • Bitcoin

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
인생마린

어떤 공부 블로거의 금서목록

Algorithm

[정렬 알고리즘] Insertion Sort(삽입정렬)

2018. 3. 14. 20:49
반응형

§Insertion Sort

손에 카드를 정렬 하는 것처럼 하나의 카드씩 제자리로 정렬하는 알고리즘이다.

 

  1. 현재 위치 k원소를 (k-1)부터 1까지 원소와 비교하며 자리를 바꾸어 나간다.
  2. 1 부터 n-1까지 위 행위를 반복한다.

 

&example

insertion-sort

Time Complexity: O(n2) as there are two nested loops. 


코드( C )

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

////////////////////////////////

//    Insertion Sort

//    삽입 정렬

////////////////////////////////

 

 

#include <stdio.h>

 

void insertionSort(int arr[], int n) {

    int i, key, j;

    for (i = 1; i < n; i++) {

        key = arr[i];

        j = i - 1;

 

        while (j >= 0 && arr[j] > key) {

            arr[j + 1] = arr[j];

            j = j - 1;

        }

        arr[j + 1] = key;

    }

}

 

void printArray(int arr[], int size) {

    int i;

    for (i = 0; i < size; i++)

        printf("%d ", arr[i]);

    printf("\n");

}

 

int main() {

    int i, j, arr[] = { 12,11,13,5,6 };

    int n = sizeof(arr) / sizeof(arr[0]);

 

    insertionSort(arr, n);

    printf("Sorted Array : ");

    printArray(arr, n);

    return 0;

}

 

Colored by Color Scripter

cs


반응형
저작자표시 비영리 (새창열림)

'Algorithm' 카테고리의 다른 글

[정렬 알고리즘] Merge Sort(병합 정렬)  (1) 2018.03.14
[정렬 알고리즘] Recursive Insertion Sort(재귀 삽입 정렬)  (0) 2018.03.14
[정렬 알고리즘] Recursive Bubble Sort(재귀 버블 정렬)  (0) 2018.03.14
[정렬 알고리즘] Bubble Sort(버블정렬, 거품정렬)  (0) 2018.03.14
[정렬 알고리즘] Seletion Sort (선택 정렬)  (0) 2018.03.14
    'Algorithm' 카테고리의 다른 글
    • [정렬 알고리즘] Merge Sort(병합 정렬)
    • [정렬 알고리즘] Recursive Insertion Sort(재귀 삽입 정렬)
    • [정렬 알고리즘] Recursive Bubble Sort(재귀 버블 정렬)
    • [정렬 알고리즘] Bubble Sort(버블정렬, 거품정렬)
    인생마린
    인생마린
    즐거운 프로그래밍~♬

    티스토리툴바