Upload
codingclub
View
130
Download
0
Embed Size (px)
Citation preview
2016.11.26
3 주차
Radix sort
Counting sort
Bucket sort
1.Radix Sorting( 기수 정렬 )
• 분배 방식의 정렬 방법
• 정렬할 원소의 키 값에 해당하는 버킷에 원소를 분배하였다가 버킷의 순서대로 원소를 꺼내는 방법을 반복해서 정렬하는 방법
1.Radix Sorting (1 단계 )
1.Radix Sorting
1.Radix Sorting(2 단계 )
1.Radix Sorting
1.Radix Sorting in C
1.Radix Sorting in C
2.Counting Sorting( 계수 정렬 )(1) 배열 내에 최댓값을 배열의 길이로 하는 새로운 버켓을 만든다 .
(2) 배열의 각 값들을 인덱스로 하여 버켓 배열에 그 수를 카운팅한다 . (3) 낮은 인덱스부터 출력을 하면 정렬된 결과를 얻을 수 있다 .
2.Counting Sorting(1)
2.Counting Sorting(1)
2.Counting Sorting(1)
2.Counting Sort in C
2.Counting Sorting in C
2.Counting Sorting in C
2.Counting Sorting in C
3.Bucket Sorting• 계수 정렬은 키 값이 작은 범위 안에 들어올 때 적용 할 수 있는 방법이지만 버킷 정렬은 키 값의 범위뿐만이 아니라 그 범위 내에서 키 값이 확률적으로 균등하게 분포된다고 가정할 수 있을 때 적용할 수 있는 방법 • 설명의 편의상 키 값이 0 과 1 사이라고 가정하자 . n 개의 키가 구간 [0,1] 을 n 등분하고 이들 각각을 하나의 버킷으로 한다 . 각 키를 크기에 따라 각 버킷에 분배한다면 , 키가 구간 내에서 균등하게 분포한다고 가정했으므로 하나의 버킷에는 하나의 키만 들어있을 확률이 높음
3.Bucket Sorting• 배열 A : 0.86, 0.32, 0.27, 0.12, 0.49,
0.21, 0.62, 0.89, 0.71, 0.87 • ① 10 개의 데이터가 있다고 하면 구간 크기가
0.1 인 10 개의 버킷을 만든다 . • ② A 의 각 원소 값에 따라 적절한 버킷에 넣고 같은 버킷에 들어갈 값은 그림 (a) 와 같이 연결 리스트에 의해 연결시킨다 .• ③ 다음은 각 리스트 B[i] 에 대하여 삽입 정렬을 행한다 . 그 결과는 그림 (b) 와 같다 .
3.Bucket Sorting
3.Bucket Sorting in C
3.Bucket Sorting in C