Đếm số lần xuất hiện của các phần tử trong mảng

Đếm tần số xuất hiện của các phần tử vào mảng là 1 bài tập về xây dựng để giúp đỡ chúng ta sinh viên không hề ít trong việc phát âm về kết cấu của tài liệu. Tuy là 1 trong những bài bác tập đơn giản cơ mà có rất nhiều phương thức để giải dạng bài xích tập này. Việc gạn lọc phương thức phụ thuộc vào tài liệu bài toán thù đưa ra. Hãy cùng mày mò những cách code bài tập này trong bài viết dưới đây.

Bạn đang xem: Đếm số lần xuất hiện của các phần tử trong mảng

*

Các phương pháp giải bài bác toán thù đếm tần số xuất hiện của những thành phần trong mảng

Đề bài: Cho một mảng một chiều bao gồm n thành phần. Hãy đếm số lần xuất hiện của những thành phần vào mảng với n = 5 với a<> = 1, 2, 3, 1, 2

Ta thấy, hàng đầu xuất hiện thêm gấp đôi, số 2 mở ra 2 lần cùng số 3 lộ diện 1 lần.

Phương thơm pháp giải

Phương pháp 1: Sử dụng chỉ số mảng làm key

Để đếm chu kỳ mở ra của các phần tử vào mảng, ta buộc phải suy xét phạm vi quý hiếm của các phần tử vào mảng.

Xem thêm: Đặc Điểm Của Gang Là Gì ? Tìm Hiểu Đặc Điểm Và Ứng Dụng Chi Tiết

Theo đề bài xích, ta gồm các thành phần trong mảng đảm bảo an toàn 2 điều kiện: a >= 0 và a

Do quý giá thỏa mãn cả hai ĐK trên đề nghị ta hoàn toàn có thể dùng chỉ số mảng i nhằm đếm mốc giới hạn lộ diện của i. Lúc đó:

a<0> = 0;a<1> = 2;a<2> = 2;a<3> = 1;

Phương pháp 2: Sử dụng cấu tạo dữ liệu bản đồ trong C++

Theo phương thức này, ta sẽ sử dụng cấu trúc dữ liệu map nhằm đếm tần số lộ diện của các phần tử. Giá trị value khi ấy vẫn giữ giàng tần số lộ diện của key.

Phương thơm pháp 3: Sắp xếp với đếm

Với giải pháp này, chỉ cần sắp xếp mảng theo hướng tăng cao.

Cách code đếm tần số xuất hiện của những phần tử trong mảng chi tiết

Trong nội dung bài viết này, công ty chúng tôi đang chỉ ra 3 bí quyết góp các bạn có thể tiện lợi lập trình sẵn bài xích toán thù đếm tần số mở ra của những bộ phận trong mảng

*

Cách 1

Input:

#include using namespace std;const int MAX = 1e6;int cnt;int main() int n; do  cout cin >> n; while( int a; for(int i = 0; i do cout cin >> a;while(a for(int i = 0; i for(int i = 0; i cnt>++; } for(int i = 0; i if(cnt > 0) cout }}

Output:

Nhap n = 5Nhap a<0> = 1Nhap a<1> = 2Nhap a<2> = 2Nhap a<3> = 1Nhap a<4> = 3Gia tri 1 xuat hien 2 lan!Gia tri 2 xuat hien 2 lan!Gia tri 3 xuat hien 1 lan!

Cách 2: Sử dụng C++

Input:

#include #include using namespace std;const int N = 1e6;int a;int main() int n; cin >> n; map cnt; for(int i = 0; i cin >> a; for(int i = 0; i cnt>++; } for(tự động hóa it : cnt)cout }

Output:

51 1 2 3 4Gia tri 1 xuat hien 2 lan!Gia tri 2 xuat hien 1 lan!Gia tri 3 xuat hien 1 lan!Gia tri 4 xuat hien 1 lan!

Cách 3: Sử dụng hàm std:::sort vào thỏng viện algorithm C++

Input:

#include #include using namespace std;const int N = 1e6;int a;int main() int n; cin >> n; for(int i = 0; i cin >> a; sort(a, a + ); int cnt = 1; for(int i = 1; i if(a == a) ++cnt;else cout cnt =1; } cout }

Output:

61 2 3 1 2 3Phan tu 1 xuat hien 2 lan!Phan tu 2 xuat hien 2 lan!Phan tu 3 xuat hien 2 lan!

Bài viết trên phía trên đã tổng thích hợp rất đầy đủ các phương thức tương tự như giải pháp code đếm tần số xuất hiện của những phần tử trong mảng C/C++. Hy vọng nội dung bài viết rất có thể góp chúng ta thiết kế một cách dễ dàng hơn. Chúc các bạn thực hành thực tế thành công xuất sắc.