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

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

*

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

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

Ta thấy, số 1 xuất hiện 2 lần, số 2 xuất hiện 2 lần và số 3 xuất hiện 1 lần.

Phương pháp giải

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

Để đếm số lần xuất hiện của các phần tử trong mảng, ta cần lưu ý đến phạm vi giá trị của các phần tử trong mảng.

Xem thêm: Cách Làm Bánh Quy Bơ Làm Bánh Quy Bơ (Công Thức “Master”), Chia Sẻ Công Thức Làm Bánh Quy Thơm Ngon Tại Nhà

Theo đề bài, ta có các phần tử trong mảng đảm bảo 2 điều kiện: a >= 0 và a

Do giá trị thỏa mãn cả 2 điều kiện trên nên ta có thể dùng chỉ số mảng i để đếm số lần xuất hiện của i. Khi đó:

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

Phương pháp 2: Sử dụng cấu trúc dữ liệu map trong C++

Theo phương pháp này, ta sẽ sử dụng cấu trúc dữ liệu map để đếm số lần xuất hiện của các phần tử. Giá trị value khi đó sẽ lưu lại số lần xuất hiện của key.

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

Với cách này, chỉ cần sắp xếp mảng theo chiều tăng dần.

Xem thêm: Vì Sao Tủ Lạnh Kêu To Và Không Đông Đá ? Nguyên Nhân Và Cách Chữa

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

Trong bài viết này, chúng tôi sẽ chỉ ra 3 cách giúp các bạn có thể dễ dàng lập trình bài toán đếm số lần xuất hiện của các phần tử 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(auto 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 trong thư 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 đây đã tổng hợp đầy đủ các phương pháp cũng như cách code đếm số lần xuất hiện của các phần tử trong mảng C/C++. Hy vọng bài viết có thể giúp các bạn lập trình một cách dễ dàng hơn. Chúc các bạn thực hành thành công.

Leave a Reply

Your email address will not be published. Required fields are marked *