Chia sẻ kiến thức ngôn ngữ lập trình C, C++, C#, Java, Python, PHP, JS, SQL ...
Các điều hành viên: Mod, SMod, Admin
#3 » gửi bởi nghiammo1992 » 12/09/2021 12:34 » @523438
Thuật toán Counting Sort – Thuật toán sắp xếp đếm phân phối (thuật toán tốt hơn Quick Sort, nhưng tốn bộ nhớ hơn)- Mã: Chọn tất cả
using namespace std;
void counting_sort(int input[], int n)
{
int output[n]; int max = input[0];
int min = input[0];
for(int i = 1; i < n; i++)
{
if(input[i] > max)
max = input[i]; else if(input[i] < min)
min = input[i]; }
int k = max - min + 1; int count_array[k]; fill_n(count_array, k, 0); for(int i = 0; i < n; i++)
count_array[input[i] - min]++; for(int i = 1; i < k; i++)
count_array[i] += count_array[i - 1];
for(int i = 0; i < n; i++)
{
output[count_array[input[i] - min] - 1] = input[i];
count_array[input[i] - min]--;
}
for(int i = 0; i < n; i++)
input[i] = output[i]; }
int main()
{
int arr[] {32,71,12,45,26,80,53,33,-7,99,1,5,2,-3,-100};
int n = sizeof(arr) / sizeof(arr[0]); counting_sort(arr, n);
cout << "So luong phan tu trong mang: " << n << endl;
for (int i : arr) {
cout << i << " ";
}
return 0;
}
-
nghiammo1992
- Rank:
- Cấp độ: 💚15💚
- Tu luyện: ☀️2/30☀️
- Like: 4355/14760
- Online: ✨1/5359✨
- Bang hội: Tiếu Ngạo
- Xếp hạng Bang hội: ⚡5/46⚡
- Level: ⭐75/1227⭐
- Chủ đề đã tạo: 🩸4141/4141🩸
- Tiền mặt: 295 Xu
- Ngân hàng: 5 Xu
- Nhóm: Admin
- Danh hiệu: ⚝⚝⚝Truyền Thuyết⚝⚝⚝
- Giới tính:
- Ngày tham gia: 08/03/2012 10:56
- Đến từ: Hà Giang
- Thiết bị: Nokia N96
- Số điện thoại: 0367790762
- (Google Chrome 94.0.460)
-
Quay về C, C++, C#, Java, Python, PHP, JS, SQL ...