13
2016.11.12 1 주주 Insertiojn sort, Bubble sort, Selection sort

[알고리즘 스터디 1주차]삽입정렬/버블정렬/선택정렬

Embed Size (px)

Citation preview

Page 1: [알고리즘 스터디 1주차]삽입정렬/버블정렬/선택정렬

2016.11.12

1주차Insertiojn sort,

Bubble sort,

Selection sort

Page 2: [알고리즘 스터디 1주차]삽입정렬/버블정렬/선택정렬

1. Insertion sort

2. Bubble sort

3. Selection sort

목차

Page 3: [알고리즘 스터디 1주차]삽입정렬/버블정렬/선택정렬

1. Insertion Sort – 삽입 정렬 레코드를 이미 정렬된 배열 “ ”의 적절한 위치에 삽입

3 / 141. Insertion Sort

x

1) 배열 S: i 번째 슬롯에 있는 키 값을 x 라고 가정합니다 .

S[j] S[j+1] S[j+2] ………………………… S[i-2] S[i-1] S[i]

2) (i-1)번째 , (i-2) 번째 슬롯에서 부터 차례로 x 보다 작은 키를 찾을 때까지 비교를 반복합니다 .

Page 4: [알고리즘 스터디 1주차]삽입정렬/버블정렬/선택정렬

1. Insertion Sort – 삽입 정렬4 / 141. Insertion Sort

x

1) S[j] : x 보다 작은 키가 위치한 슬롯이라 가정합니다 .

S[j] S[j+1] S[j+2] ………………………… S[i-2] S[i-1] S[i]

2) (j+1) ~ (i-1) 번째 슬롯에 있는 키들을(j+2) ~ i 번째 슬롯으로 옮깁니다 .

xS[j] S[j+1] S[j+2] ………………………… S[i-2] S[i-1] S[i]

Page 5: [알고리즘 스터디 1주차]삽입정렬/버블정렬/선택정렬

1. Insertion Sort – 삽입 정렬5 / 141. Insertion Sort

xS[j] S[j+1] S[j+2] ………………………… S[i-2] S[i-1] S[i]

3) (j+1) 번째 슬롯에 x 를삽입합니다 .

xS[j] S[j+1] S[j+2] ………………………… S[i-2] S[i-1] S[i]

4) 이 과정을 i=2 에서부터 i=n 까지반복합니다 .

Page 6: [알고리즘 스터디 1주차]삽입정렬/버블정렬/선택정렬

1. Insertion Sort in C6 / 141. Insertion Sort

1. 정수를 입력받아 배열 array → 에 대입 출력

Page 7: [알고리즘 스터디 1주차]삽입정렬/버블정렬/선택정렬

1. Insertion Sort in C7 / 141. Insertion Sort

2. For문: 정렬할 범위 넓혀 나가기- array 의 처음부터 끝까지 (1 ~ n-1)- 변수 d : insert position

3. While 문 반복: 새로운 요소의 위치 찾기- Insert position 이 0 보다 클 때- 삽입 위치를 찾지 못했을때까지- 앞으로 이동하면서 자신보다 더

큰 값이면 자리를 교체* printf 문은 이후 생략

Page 8: [알고리즘 스터디 1주차]삽입정렬/버블정렬/선택정렬

2. Bubble Sort 옆과 비교해서 왼쪽이 더 크면 좌우 교환 하는 정렬

8 / 142. Bubble Sort

Page 9: [알고리즘 스터디 1주차]삽입정렬/버블정렬/선택정렬

2. Bubble Sort in C9 / 142. Bubble Sort

1. 정수를 입력받아 배열 array → 에 대입 출력

Page 10: [알고리즘 스터디 1주차]삽입정렬/버블정렬/선택정렬

2. Bubble Sort in C10 / 142. Bubble Sort

2. array 배열의 첫번째 인덱스부터 바로 옆 오른쪽 인덱스와 크기를 비교3. 비교 후 왼쪽의 요소가 클 경우 좌우 교환

Page 11: [알고리즘 스터디 1주차]삽입정렬/버블정렬/선택정렬

3. Selection Sort 정렬되지 않은 데이터들에서 ,

가장 작은 데이터를찾아 가장 앞 의 데이터와 교환 하는 정렬

11 / 143. Selection Sort

Page 12: [알고리즘 스터디 1주차]삽입정렬/버블정렬/선택정렬

3. Selection Sort in C

1. 정수를 입력받아 배열 array → 에 대입 출력

12 / 143.Selection Sort

Page 13: [알고리즘 스터디 1주차]삽입정렬/버블정렬/선택정렬

3. Selection Sort in C

2. for 문c : array 배열의 첫번째인덱스부터

3. 중첩 for문: 가장 작은 값이 들어있는 배열의

인덱스 찾기 & position 에 저장

4.position 과 c 의 위치 교환

13 / 143.Selection Sort