6-5장 쉘 정렬
1. 단순 삽입 정렬의 특징 이해하기 - 정렬을 마쳤거나 정렬을 마친 상태에 가까우면 정렬 속도가 매우 빨라짐 (장점) - 삽입할 위치가 멀리 떨어져 있으면 이동(대입)해야 하는 횟수가 많아짐(단점) 2. 쉘 정렬 살펴 보기 - 단순 삽입 정렬의 장점은 살리고 단점은 보완한 알고리즘 - 정렬할 배열의 요소를 그룹으로 나눠 각 그룹별로 단순 삽입 정렬 수행 - 그 그룹을 합치면서 정렬을 반복하여 요소의 이동 횟수를 줄이는 방법 - ex) 배열 {8,1,4,2,7,6,3,5}을 4개의 배열로 나누기 - ({8,7},{1,6},{4,3},{2,5}) - 4- 정렬 - 2-정렬 ({7,3,8,4},{1,2,6,5}) - 1-정렬을 적용하면 정렬을 마치게 됨 - h-정렬 -> 쉘 정렬 과정에서 수행하는 각각의 정..
6-2장 버블 정렬
1. 버블 정렬 알아보기 버블 정렬(bubble sort) - 이웃한 두 요소의 대소관계를 비교하여 교환을 반복 ex) 배열 {6,4,3,7,1,9,8} 오름차순 정렬 - 왼쪽에 있는 값이 오른쪽에 있는 값보다 작아야 함 - 요소의 개수가 n개인 배열에서 n-1회 비교, 교환을 하면 오름차순으로 정렬됨 - 패스(pass) : 일련의 과정(비교, 교환 과정) - 버블 정렬의 첫 번째 패스 - 버블 정렬의 두번째 패스 - 패스를 1회 수행할 때마다 정렬할 요소가 하나씩 줄어듬 - 패스를 k회 수행하면 앞쪽의 요소가 k개 정렬됨 - 모든 정렬이 끝나려면 n-1회의 패스가 수행되어야 함 - 버블정렬 프로그램 //버블 정렬 (버전1) #include #include #define swap(type,x,y) do ..