버킷 정렬 기술에서 데이터 항목은 버킷 세트로 분산됩니다. 각 버킷은 유사한 유형의 데이터를 보유할 수 있습니다. 배포 후 각 버킷은 다른 정렬 알고리즘을 사용하여 정렬됩니다. 그런 다음 모든 요소를 기본 목록으로 모아 정렬된 형식을 얻습니다.
버킷 정렬 기법의 복잡성
-
시간 복잡도:최상의 경우와 평균적인 경우는 O(n + k), 최악의 경우는 O(n2 )입니다.
-
공간 복잡도:최악의 경우 O(nk)
입력 - 정렬되지 않은 데이터의 목록:0.25 0.36 0.58 0.41 0.29 0.22 0.45 0.79 0.01 0.69Output - 정렬 후 배열:0.01 0.22 0.25 0.16 .29 4알고리즘
bucketSort(배열, 크기)
입력 :데이터 배열 및 배열의 총 개수
출력 :정렬된 배열
Begin for i :=0 to size-1 do insert array[i]를 버킷 인덱스(size * array[i])로 done for i :=0 to size-1 do sort bucket[i] done for i :=0에서 크기 -1까지 버킷[i]의 항목을 수집하고 doneEnd 배열에 넣습니다.예시 코드
#include#include #include namespace std;void display(float *array, int size) 사용 { for(int i =0; i 버킷[크기]; for(int i =0; i > n; 부동 소수점 [n]; // 주어진 수의 요소로 배열 생성 cout <<"Enter elements:" < > arr[i]; } cout <<"정렬 전 배열:"; 디스플레이(arr, n); 버킷 정렬(arr, n); cout <<"정렬 후 배열:"; 디스플레이(arr, n);} 출력
10enter 요소를 입력하십시오 :10enter 요소 :0.25 0.36 0.58 0.45 0.29 0.22 0.45 0.79 0.22 0.45 0.29 0.01 0.69Array 정렬하기 전에 :0.29 0.22 0.45 0.29 0.22 0.45 0.79 0.010.6929 0.01 0.22 0.25 0.29 0.36 0.41 0.45 0.36 0.41 0.45 0.58 0.690. 79