@openlearnhub: Câu hỏi phỏng vấn Thuật toán level mid: lấy 10 số lớn nhất trong 100 triệu số. Cách tự nhiên: sort rồi lấy 10 số cuối. Mình đo Java 21 thật: sort 100 triệu int mất 20,5–23,6 s. Có cách nào không sort không? HEAP 10 PHẦN TỬ: giữ một min-heap đúng 10 số. Duyệt một lượt, số nào lớn hơn đỉnh heap thì đẩy vào, số bé nhất bật ra. PriorityQueue: 0,6–0,84 s. Viết heap trên int[] thuần: 0,30–0,34 s — nhanh hơn sort 67 lần. VÌ SAO: sort làm việc cho cả 100 triệu số ~ n log n; heap chỉ trả log 10 cho những số lọt vào top tạm thời, số còn lại chỉ tốn 1 phép so sánh với đỉnh heap. Càng về sau, đỉnh heap càng cao, càng ít số qua được cửa. CÁI BẪY: dùng PriorityQueue rồi bảo heap "chỉ nhanh gấp đôi". 30 lần chậm hơn nằm ở boxing Integer + con trỏ, không phải ở thuật toán. Người hỏi chờ: O(n log k), một lượt duyệt, và k đủ nhỏ để nằm trong cache. Trả lời được tới đâu là biết mình đang ở level nào 👇 Lời giải đầy đủ + bài học miễn phí mình để ở phần bình luận 👇 #thuattoan #heap #topk #java #performance #interview #laptrinh #openlearnhub #LearnOnTikTok

Open Learn Hub
Open Learn Hub
Open In TikTok:
Region: VN
Tuesday 18 August 2026 13:17:48 GMT
12205
374
10
57

Music

Download

Comments

realminhtrq
realminhtrq :
đây là bài toán top k. giải thích như này thì không rõ bản chất
2026-08-19 12:39:17
2
duongtran_24
Dương Trần :
B giải thích số bé nhất đứng ở đỉnh số nào lớn hơn đỉnh thì bỏ đỉnh ra thay số đó vào, thế giả sử số lớn nhất mảng ở vị trí thứ 11 được duyệt thay cho số bé nhất ở đỉnh đó, thì bao giờ mới tìm ra được số lớn hơn cái đỉnh mới được thay đó?
2026-08-20 13:16:55
0
ech.boy0101
ếch :
web nào vậy ad
2026-08-18 14:45:57
0
minhtrihoang1990
minhtrihoang1990 :
Có cách nào ko phải duyệt hết mảng ko
2026-08-20 02:46:57
0
nguyendangvui1
Học AI cùng Nguyễn 😇 :
1 là bucket sort 2 là n_element dpt 0(n)
2026-08-19 14:01:11
0
tieuanhoctoan
Tiểu Anh học Toán :
Heapsort thì a a
2026-08-19 14:49:30
0
To see more videos from user @openlearnhub, please go to the Tikwm homepage.

Other Videos


About