Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

버킷 정렬을 구현하는 C++ 프로그램

<시간/>

버킷 정렬 기술에서 데이터 항목은 버킷 세트로 분산됩니다. 각 버킷은 유사한 유형의 데이터를 보유할 수 있습니다. 배포 후 각 버킷은 다른 정렬 알고리즘을 사용하여 정렬됩니다. 그런 다음 모든 요소를 ​​기본 목록으로 모아 정렬된 형식을 얻습니다.

버킷 정렬 기법의 복잡성

  • 시간 복잡도:최상의 경우와 평균적인 경우는 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#includenamespace 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