2016.11.12
1주차Insertiojn sort,
Bubble sort,
Selection sort
1. Insertion sort
2. Bubble sort
3. Selection sort
목차
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 보다 작은 키를 찾을 때까지 비교를 반복합니다 .
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]
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 까지반복합니다 .
1. Insertion Sort in C6 / 141. Insertion Sort
1. 정수를 입력받아 배열 array → 에 대입 출력
1. Insertion Sort in C7 / 141. Insertion Sort
2. For문: 정렬할 범위 넓혀 나가기- array 의 처음부터 끝까지 (1 ~ n-1)- 변수 d : insert position
3. While 문 반복: 새로운 요소의 위치 찾기- Insert position 이 0 보다 클 때- 삽입 위치를 찾지 못했을때까지- 앞으로 이동하면서 자신보다 더
큰 값이면 자리를 교체* printf 문은 이후 생략
2. Bubble Sort 옆과 비교해서 왼쪽이 더 크면 좌우 교환 하는 정렬
8 / 142. Bubble Sort
2. Bubble Sort in C9 / 142. Bubble Sort
1. 정수를 입력받아 배열 array → 에 대입 출력
2. Bubble Sort in C10 / 142. Bubble Sort
2. array 배열의 첫번째 인덱스부터 바로 옆 오른쪽 인덱스와 크기를 비교3. 비교 후 왼쪽의 요소가 클 경우 좌우 교환
3. Selection Sort 정렬되지 않은 데이터들에서 ,
가장 작은 데이터를찾아 가장 앞 의 데이터와 교환 하는 정렬
11 / 143. Selection Sort
3. Selection Sort in C
1. 정수를 입력받아 배열 array → 에 대입 출력
12 / 143.Selection Sort
3. Selection Sort in C
2. for 문c : array 배열의 첫번째인덱스부터
3. 중첩 for문: 가장 작은 값이 들어있는 배열의
인덱스 찾기 & position 에 저장
4.position 과 c 의 위치 교환
13 / 143.Selection Sort