FE Master 2026
FE Master

PHẦN A: KIẾN THỨC

PHASE 1: CƠ SỞ KHOA HỌC MÁY TÍNH (DAY 1-30)

1
Hệ đếm & Dữ liệuPart A
2
Số bù 2 & Số thực (Floating Point)Part A
3
Mạch Logic & Cổng LogicPart A
4
Kiến trúc CPUPart A
5
Bộ nhớ (Memory)Part A
6
Hệ điều hành (OS)Part A
7
Tiến trình & LuồngPart A
8
Mạng máy tính: OSI 7 LayerPart A
9
Internet & IP/TCPPart A
10
HTTP & DNSPart A
11
Database Cơ bản & Mô hình ERPart A
12
Chuẩn hóa Database (1NF → 3NF)Part A
13
SQL Cơ bản (SELECT, INSERT, UPDATE, DELETE)Part A
14
SQL Nâng cao (JOIN, GROUP BY, SubQuery)Part A
15
Transaction & ACIDPart A
16
Phát triển Phần mềm (SDLC & Models)Part A
17
Thiết kế Hệ thống (DFD, UML)Part A
18
Kiểm thử Phần mềm (Testing)Part A
19
Quản lý Dự án (PMBOK, WBS, Gantt)Part A
20
Review: Database & Phát triển PMPart A
21
Chiến lược Kinh doanh Chuyên sâu (SWOT, PPM)Part A
22
Marketing Mix & Data MiningPart A
23
Chiến lược Hệ thống & Cải tiến Quy trìnhPart A
24
Pháp luật IT & Hợp đồng (Quan trọng)Part A
25
Quản lý Dự án (PMBOK & EVM)Part A
26
Lưu trữ & Tính toán RAIDPart A
27
Công nghệ Mạng (LAN/WAN/Wifi)Part A
28
An toàn thông tin (Threats & Attacks)Part A
29
Mã hóa & Chữ ký sốPart A
30
Review Phase 1: Foundation (Tổng ôn tập)Part A

PHẦN A: KIẾN THỨC

PHASE 2: LOGIC & TỰ ĐỘNG HÓA (DAY 31 - 50)

31
Tư duy Thuật toán & Kỹ năng Trace CodePart A
32
Thuật toán Sắp xếp Cơ bản (Basic Sorting)Part A
33
Thuật toán Sắp xếp Nâng cao (Advanced Sorting)Part A
34
Thuật toán Tìm kiếm (Searching) & HashingPart A
35
Cấu trúc dữ liệu: Stack & QueuePart A
36
Cấu trúc dữ liệu: Array & Linked ListPart A
37
Graph (Đồ thị) & Thuật toán tìm đườngPart A
38
Tree (Cây) & Binary Search TreePart A
39
Độ phức tạp thuật toán (Big O Notation)Part A
40
Review Phase 2 Part 1: Algorithms MasterPart A
41
Tư duy Lập trình: Logic & Bảng Chân TrịPart A
42
Bộ nhớ: Stack vs Heap & Con trỏPart A
43
CTDL & Giải thuật: Độ phức tạp Big OPart A
44
OOP 1: Class, Object & Đóng góiPart A
45
OOP 2: Kế thừa & Đa hình (Inheritance & Polymorphism)Part A
46
Collections List/Set/Map - Hộp đựng đồ vạn năngPart A
47
Đệ quy (Recursion) - Giấc mơ trong giấc mơPart A
48
Kỹ thuật Bit (Bitwise) - Quyền năng tối thượngPart A
49
Design Patterns: Singleton & FactoryPart A
50
Tổng kết Phase 2: Chân dung Master CoderPart A

PHẦN A: KIẾN THỨC

PHASE 3: ĐI SÂU VÀO HỆ THỐNG (DAY 51 - 75)

51
Kiến trúc Máy tính: CPU & PipelinePart A
52
Bộ nhớ đệm: Cache InternalsPart A
53
Dữ liệu: Float & IEEE 754 Deep DivePart A
54
Hệ điều hành: Process InternalsPart A
55
Lập lịch CPU: Scheduling AlgorithmsPart A
56
Quản lý bộ nhớ: Virtual Memory & PagingPart A
57
Lưu trữ: Disk Anatomy & RAIDPart A
58
Ảo hóa & Containerization (Docker)Part A
59
Độ tin cậy & SRE BasicsPart A
60
Tổng ôn Hardware & OS ArchitectPart A
61
Mạng máy tính: Packet Analysis & WiresharkPart A
62
Giao vận: TCP Internals Deep DivePart A
63
Subnetting: VLSM & CIDR MasterclassPart A
64
Định tuyến: OSPF & BGP InternalsPart A
65
DNS & HTTP/2, HTTP/3 (QUIC)Part A
66
Database Indexing: B-Tree vs HashPart A
67
Normalization & DenormalizationPart A
68
NoSQL & Distributed DataPart A
69
Transaction & Concurrency ControlPart A
70
Review: System Design InterverviewPart A
71
An toàn thông tin: CIA & Risk ManagementPart A
72
Mật mã học: Encryption & HashingPart A
73
Xác thực: Authentication & OAuth 2.0Part A
74
Tấn công Web: SQL Injection & XSSPart A
75
Hạ tầng & Tổng ôn An toàn thông tinPart A

PHẦN A: KIẾN THỨC

PHASE 4: QUẢN LÝ IT & CHIẾN LƯỢC (DAY 76 - 85)

76
Quản lý Dự án I: PMBOK & Tam giác vàngPart A
77
Quản lý Thời gian: WBS & Đường Găng (CPM)Part A
78
Quản lý Chi phí: EVM (Earned Value Management)Part A
79
Quản lý Dịch vụ: ITIL & SLAPart A
80
Kiểm toán hệ thống & Kiểm soát nội bộPart A
81
Chiến lược Kinh doanh: SWOT & PPMPart A
82
Marketing & Tài chính: 4P & BSCPart A
83
Pháp luật IT: Bản quyền & Hợp đồngPart A
84
Tiêu chuẩn hóa: ISO & Code of ConductPart A
85
Tổng kết Phase 4: Quản lý & Chiến lượcPart A

PHẦN B: KỸ NĂNG

PHASE 5: TRẬN CHIẾN CUỐI CÙNG - LUYỆN ĐỀ PART B (DAY 86 - 100)

86
Part B Security: CIA & Xác thực UserPart B
87
Mã hóa: Đối xứng vs Bất đối xứngPart B
88
Chữ ký số & PKIPart B
89
Các loại tấn công mạng (Cyber Attacks)Part B
90
Hạ tầng bảo mật: Firewall, DMZ & VPNPart B
91
Pseudo-code Drills: Cấu trúc dữ liệu cơ bảnPart B
92
Pseudo-code Drills: Sorting & SearchingPart B
93
Pseudo-code Drills: Logic & BitwisePart B
94
Pseudo-code Drills: Kỹ thuật đệ quyPart B
95
Bài toán thực tế Part B: Nén dữ liệu RLEPart B
96
Part B Math: Tính toán phần cứngPart B
97
Part B Math: Tính toán Mạng (Subnet)Part B
98
Chiến thuật làm bài Part BPart B
99
Tổng ôn tập: Điểm mù kiến thứcPart B
100
FINAL DAY: Lời kết & Chúc may mắnPart B

Ver: 2026.02.21-v2

Học tậpThi thửHồ sơ
FE Master 2026
Đăng nhập
FE Master 2026

app.description

Liên kết hữu ích

  • Trang chủ
  • Blog & Tin tức
  • Đăng nhập

Pháp lý

  • Chính sách bảo mật
  • Điều khoản dịch vụ

Kết nối

  • Về chúng tôi
  • Liên hệ

© 2026 FE Master. All rights reserved.

Made with ♥ by Baryuu
Trang chủ
PHASE 2: LOGIC & TỰ ĐỘNG HÓA (DAY 31 - 50)/Ngày 34/100
DAY 34🇯🇵 探索アルゴリズム

Thuật toán Tìm kiếm (Searching) & Hashing

34%

Quảng cáo • Advertisement

📢 Sponsor Ad

Google AdSense

lesson.content.title

lesson.content.subtitle

🎯 Mò kim đáy bể như thế nào cho nhanh?

Tìm kiếm là thao tác phổ biến nhất trong phần mềm (Google Search, Ctrl+F, tra từ điển...).

1. Linear Search (Tìm kiếm Tuyến tính)

Cách "ngây thơ" nhất: Duyệt từ đầu đến cuối for (i=0; i < n; i++).

  • Độ phức tạp: O(N).
  • Ưu điểm: Dữ liệu lộn xộn cũng tìm được. Không cần sắp xếp.

2. Binary Search (Tìm kiếm Nhị phân) - "Chia đôi nỗi sầu"

Điều kiện bắt buộc: Mảng PHẢI ĐƯỢC SẮP XẾP trước.

Giống như tra từ điển: Bạn không lật từng trang từ trang 1. Bạn mở đại trang giữa. Nếu từ cần tìm vần T (sau M) -> Bạn vứt bỏ nửa đầu quyển sách, chỉ tìm ở nửa sau. Cứ thế chia đôi mãi.

Ví dụ: Tìm số 42 trong mảng [10, 20, 30, 40, 50, 60, 70]

  • Low = 0, High = 6.
  • Bước 1: Giữa (Mid) = (0+6)/2 = 3. Giá trị A[3] = 40.
    42 > 40 -> Tìm ở bên phải (bỏ bên trái).
    Low mới = Mid + 1 = 4.
  • Bước 2: Low = 4, High = 6. Mid = (4+6)/2 = 5. Giá trị A[5] = 60.
    42 < 60 -> Tìm ở bên trái.
    High mới = Mid - 1 = 4.
  • Bước 3: Low = 4, High = 4. Mid = 4. Giá trị A[4] = 50.
    42 < 50 -> High = 3.
  • Bước 4: Low (4) > High (3). -> Tìm kiếm thất bại. Không có số 42.

Độ phức tạp: O(log N). Siêu nhanh. (Với 1 tỷ phần tử, chỉ cần tìm tối đa 30 lần).

3. Hashing (Băm) - Tìm kiếm O(1)

Kỹ thuật "thần thánh" biến Key thành Index mảng.

Hàm băm (Hash Function): h(x) = x % 10.

  • Cần lưu số 15 -> h(15) = 5 -> Lưu vào ô số 5.
  • Cần tìm số 15 -> Tính h(15) = 5 -> Nhảy đến ô 5 lấy ra ngay. Không cần For, không cần chia đôi. Mất đúng 1 nhịp.

Xử lý Va chạm (Collision)

Chuyện gì xảy ra nếu cần lưu số 25? 25 % 10 = 5. Ôi thôi, ô số 5 đã có số 15 ngồi rồi!

Đây là xung đột (Collision). Có 2 cách giải quyết:

  1. Chaining (Dùng danh sách liên kết): Tại ô số 5, ta móc thêm một cái xích. Ô 5 chứa danh sách: [15] -> [25]. Khi tìm thì phải duyệt cái xích này.
  2. Open Addressing (Địa chỉ mở): Ô 5 bận rồi hả? Thử ô 6 xem? Ô 6 bận thì thử ô 7. (Linear Probing).

4. Ứng dụng thực tế: Index & Hash

Bạn có bao giờ tự hỏi database chứa cả triệu dòng mà tìm mất có 0.01s không?

  • Database Indexing (B-Tree): Giống mục lục sách. Giúp tìm kiếm O(log N) thay vì O(N).
  • HashMap/Dictionary: Dùng trong lập trình để lưu Cache, Session. (Ví dụ: users['user_123'] để lấy thông tin user ngay lập tức).

Quảng cáo • Advertisement

📢 Ad Space

Google AdSense

Day 33Day 35