쉘 정렬 - 쉘 정렬의 전략 - 쉘 정렬의 실제 - C로 구현한 쉘 정렬 - 쉘 정렬의 분석 - 쉘 정력의 개선 분포수세기 - 분포수세기의 전략 - 분포수세기의 실제 - C로 구현한 분포수세기 - 분포수세기의 분석 퀵 정렬 - 퀵 정렬의 전략 - 퀵 정렬의 실제 - C로 구현한 퀵 정렬 - 퀵 정렬의 분석 - 퀵정렬의 개선 1~3 - qsort()함수 2 IST (Information Sciences & Technology) Laboratory
쉘 정렬의 전략
쉘 정렬 - 삽입 정렬(이미 정렬된 배열, 대충 정렬된 배열) 매우 뛰어난 성능 그렇지 않을 경우에는 속도가 느림 - 위와 같은 문제점을 해결하기 위해서 h만큼 간격으로 떨어진 레코드를 삽입 정렬 하는 방법(점진적 형태) 3 IST (Information Sciences & Technology) Laboratory 1.h의 초기값을 구함 2.h가 1보다 작을 시 끝 3.i=0 4.i가 h보다 크거나 같으면 7로 이동 5.(h간격 + i)요소들에 대해서 삽입 정렬을 함 6.i를 하나 증가시키고 4로 감 7.h의 다음 값을 구하고 2로 감
쉘 정렬의 실제
4 IST (Information Sciences & Technology) Laboratory 1.h의 초기값을 구함 2.h가 1보다 작을 시 끝 3.i=0 4.i가 h보다 크거나 같으면 7로 이동 5.(h간격 + i)요소들에 대해서 삽입 정렬을 함 6.i를 하나 증가시키고 4로 감 7.h의 다음 값을 구하고 2로 감 안정성이 없음
C로 구현한 쉘 정렬
5 IST (Information Sciences & Technology) Laboratory
쉘 정렬의 분석
쉘 정렬의 모습 알고리즘의 이상적인 모양 4중 루프 - 속도는 느리지 않음 6 IST (Information Sciences & Technology) Laboratory N 정렬된 배열 난수 배열 반쯤 정렬된 배열 역순 배열 100 0 0 0 1 500 1 2 2 2 1000 2 4 4 4 2000 6 9 8 7 5000 16 30 26 22 7000 22 42 38 31 10000 35 63 63 48 단위 : 틱(약 1/18.2초)
같은 키가 많이 있는 배열에 한해 적용할 수 있음 - 누적분포를 이용 8 IST (Information Sciences & Technology) Laboratory count[1] = 5 count[2] = 6 count[3] = 5 count[4] = 2 count[5] = 2 1 3 2 2 3 1 3 2 4 2 4 3 1 2 1 2 5 1 5 3 count[1] = 5 count[2] = count[ 1] + count[2] = 11 count[3] = count[2] + count[3] = 16 count[4] = count[3] + count[4] = 18 count[5] = count[4] + count[5] = 20 1.count[]배열을 0으로 초기화 2.a[]배열의 키의 빈도를 계산 빈도 count[] 저장 3.count배열을 누적분포로 변환 4.a[] 배열을 뒤에서부터 읽어서 b[--count a[i]]에 저장 5.b[]배열을 a[]배열로 복사
분포수세기의 실제
9 IST (Information Sciences & Technology) Laboratory 안정성이 있음
C로 구현한 분포수세기
10 IST (Information Sciences & Technology) Laboratory
분포수세기의 분석
한정된 용도에만 적합 속도가 빠르지만 메모리 소모가 큼 적당히 작은 N범위의 키 값을 가지는 중복된 키가 많은 경우에 적합 기수정렬에서 강력한 기능을 함 11 IST (Information Sciences & Technology) Laboratory
퀵 정렬
축값을 중심으로 왼쪽은 축값보다 작은 값 오른쪽은 큰 값으로 배열 시킴(분할을 이용) 12 IST (Information Sciences & Technology) Laboratory 안정성이 없음 만약 n >1 이면 N 크기의 a배열을 분할하여 축값의 위치를 mid로 넘김 퀵 정렬 알고리즘
C로 구현한 퀵 정렬
13 IST (Information Sciences & Technology) Laboratory
Comments