Computer >> Máy Tính >  >> Lập trình >> Lập trình

Phân loại theo nhóm


Trong kỹ thuật Sắp xếp nhóm, các mục dữ liệu được phân phối trong một nhóm nhóm. Mỗi nhóm có thể chứa một loại dữ liệu giống nhau. Sau khi phân phối, mỗi nhóm được sắp xếp bằng cách sử dụng một thuật toán sắp xếp khác. Sau đó, tất cả các phần tử được tập hợp trên danh sách chính để có được biểu mẫu được sắp xếp.

Mức độ phức tạp của Kỹ thuật sắp xếp theo nhóm

  • Độ phức tạp về thời gian:O (n + k) cho trường hợp tốt nhất và trường hợp trung bình và O (n ^ 2) cho trường hợp xấu nhất.

  • Độ phức tạp về không gian:O (nk) cho trường hợp xấu nhất

Đầu vào và Đầu ra

 Đầu vào:Danh sách dữ liệu chưa được sắp xếp:0,25 0,36 0,58 0,41 0,29 0,22 0,45 0,79 0,01 0,69 Mảng trước khi sắp xếp:0,25 0,36 0,58 0,41 0,29 0,22 0,45 0,79 0,9 0,69 Đầu ra:Mảng sau khi sắp xếp:0,01 0,22 0,25 0,29 0,36 0,41 0,45 0,58 0,69 0,79 

Thuật toán

 bucketSort (mảng, kích thước) 

Đầu vào - Một mảng dữ liệu và tổng số trong mảng

Đầu ra - Mảng được sắp xếp

 Begin for i:=0 to size-1 do insert array [i] vào bucket index (size * array [i]) done for i:=0 to size-1 do sort bucket [i] done for i :=0 to size -1 để tập hợp các mục của bucket [i] và đưa vào mảng doneEnd 

Ví dụ

 #include  #include  #include  using namespace std; void display (float * array, int size) {for (int i =0; i  bucket [size]; for (int i =0; i > n; float arr [n]; // tạo mảng với số phần tử cho trước cout <<"Nhập các phần tử:" <> arr [i]; } cout <<"Mảng trước khi Sắp xếp:"; hiển thị (arr, n); bucketSort (arr, n); cout <<"Mảng sau khi Sắp xếp:"; display (arr, n);} 

Đầu ra

Nhập số phần tử:10 Nhập phần tử:0,25 0,36 0,58 0,41 0,29 0,22 0,45 0,79 0,01 0,69 Xám trước khi sắp xếp:0,25 0,36 0,58 0,41 0,29 0,22 0,45 0,79 0,01 0,69 Mảng sau khi sắp xếp:0,01 0,22 0,25 0,29 0,36 0,41 0,45 0,58 0,69 0,79