Triển khai (phần 2)
Bài học 6 trên 9 trong khóa học Sắp xếp đếm, chuỗi DSA của Coddy.
Bây giờ, ta đếm từng giá trị rồi sắp xếp lại mảng theo thứ tự.
Thử thách
DễGiờ hãy kết hợp tất cả thành thuật toán hoàn chỉnh.
Viết một hàm (function) tên là countingSort, nhận một mảng các số nguyên không âm và trả về mảng đã sắp xếp theo thứ tự tăng dần.
Tìm giá trị lớn nhất, tạo một mảng đếm có kích thước max + 1, đếm từng phần tử, rồi dựng lại kết quả bằng cách ghi mỗi giá trị v vào đầu ra count[v] lần, từ nhỏ nhất đến lớn nhất.
Dùng lại ý tưởng đếm từ bài học trước.
Tự làm thử
#include <stdlib.h>
int* countingSort(int* arr, int arr_size, int* returnSize) {
// Viết code ở đây
*returnSize = arr_size;
return arr;
}
Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.
Tất cả bài học trong Sắp xếp đếm, chuỗi DSA
2Thuật toán
Cách hoạt động?Mã giảTriển khai (phần 1)Triển khai (phần 2)Tự luyện tập: Trình biên dịch C online