🎯 Mục tiêu bài học
- Hiểu cơ chế ánh xạ khóa → giá trị trong Hash Table.
- Biết sử dụng Heap (Priority Queue) để xử lý phần tử có độ ưu tiên cao nhất.
📘 Lý thuyết cơ bản
Hash Table là cấu trúc ánh xạ khóa (key) thành vị trí lưu trữ nhanh chóng, giúp truy xuất trung bình O(1).
Priority Queue (hàng đợi ưu tiên) lưu các phần tử theo thứ tự ưu tiên — thường dùng Heap để cài đặt.
💻 Ví dụ
C++
#include <bits/stdc++.h>
using namespace std;
int main(){
unordered_map<string,int> mp;
mp["apple"]=3; mp["banana"]=5; mp["orange"]=2;
priority_queue<int> pq;
pq.push(10); pq.push(5); pq.push(8);
cout<<"Hash apple="<<mp["apple"]<<"\\n";
cout<<"Top of max-heap="<<pq.top();
}
Python
import heapq
mp={"apple":3,"banana":5,"orange":2}
pq=[]
for x in [10,5,8]:
heapq.heappush(pq,-x) # max-heap bằng âm số
print("Hash apple =",mp["apple"])
print("Top of max-heap =",-pq[0])
🧩 Bài tập luyện tập
- Đếm số lần xuất hiện của từng từ trong chuỗi bằng Hash Map.
- Tìm k phần tử lớn nhất trong mảng bằng Priority Queue.
- Tự cài đặt Hash Table đơn giản bằng mảng + hàm băm mod.
💡 Lời giải mẫu 1: Đếm tần suất
text=input().split()
freq={}
for w in text:
freq[w]=freq.get(w,0)+1
for k,v in freq.items():
print(k,v)
💳 Quét mã ủng hộ tuỳ tâm nhé!