Bỏ qua điều hướng

Prompt miễn phí

Tối ưu vòng lặp lồng nhau bằng cấu trúc tra cứu

Biến đoạn code lặp chậm thành phiên bản dùng map, set hoặc cấu trúc tra cứu phù hợp, kèm phân tích độ phức tạp mới.

Onter AdminCập nhật 26/09/2026 Mới · Chưa có đánh giá 0 lượt copy
CodingChatGPTCodex

Prompt dùng để làm gì?

Biến đoạn code lặp chậm thành phiên bản dùng map, set hoặc cấu trúc tra cứu phù hợp, kèm phân tích độ phức tạp mới.

Điền thông tin của bạn

Prompt

Bạn là chuyên gia tối ưu mã nguồn. Hãy phân tích đoạn code hiện có ở {{doan_code_hien_tai}} và xác định phần vòng lặp lồng nhau đang gây chậm. Từ logic hiện tại, đề xuất cách thay thế bằng {{cau_truc_du_lieu_goi_y}} như map, set, dictionary, bảng băm hoặc cấu trúc tra cứu phù hợp khác, miễn là giữ nguyên kết quả nghiệp vụ. Hãy viết lại thuật toán hoặc đoạn code tối ưu hơn, chỉ ra lý do chọn cấu trúc dữ liệu, mô tả độ phức tạp trước và sau, và nêu các đánh đổi về bộ nhớ, tính dễ đọc hoặc thứ tự phần tử nếu có. Nếu có ràng buộc như {{ngon_ngu_muc_tieu}}, {{gioi_han_bo_nho}}, {{gioi_han_thoi_gian}}, hãy tôn trọng khi đề xuất. Cuối cùng, kiểm tra lại tính tương đương đầu ra bằng ví dụ nhỏ và chỉ rõ những chỗ cần giữ nguyên hành vi.
Xem đã lưu

Input mẫu

{
"doan_code_hien_tai": "for a in listA: for b in listB: if a.id == b.id: ...",
"cau_truc_du_lieu_goi_y": "map theo id",
"ngon_ngu_muc_tieu": "JavaScript",
"gioi_han_bo_nho": "tăng không quá 2 lần so với bản gốc",
"gioi_han_thoi_gian": "giảm thời gian chạy ít nhất một bậc độ lớn"
}

Output mẫu

{
"optimized_approach": [
"xây map từ listB theo id",
"duyệt listA một lần và tra cứu O(1) trung bình"
],
"complexity": "từ O(n*m) xuống O(n+m)",
"notes": [
"giữ nguyên thứ tự kết quả theo listA",
"chấp nhận tăng bộ nhớ để đổi lấy tốc độ"
]
}

Cách sử dụng

Điền đoạn code cần tối ưu và các ràng buộc hiệu năng vào biến tương ứng. Dán prompt vào công cụ hỗ trợ refactor/code review, sau đó đối chiếu kết quả với logic gốc và kiểm tra độ phức tạp mới.

Giải thích cấu trúc

Role
Vai trò là chuyên gia tối ưu và tái cấu trúc thuật toán.
Context
Bối cảnh là mã có vòng lặp lồng nhau chậm và cần thay bằng cấu trúc tra cứu hiệu quả hơn.
Task
Nhiệm vụ là phân tích, viết lại và giải thích độ phức tạp cũng như đánh đổi.
Constraints
Không làm đổi kết quả nghiệp vụ; phải tôn trọng giới hạn bộ nhớ/thời gian nếu có.
Output
Đầu ra gồm phiên bản tối ưu, phân tích phức tạp và lưu ý tương thích.

Mẹo sử dụng

  • Nếu dữ liệu có khóa duy nhất, ưu tiên map thay vì set.
  • Hãy kiểm tra xem việc đổi cấu trúc có làm mất thứ tự đầu ra không.
  • Nêu rõ tiền xử lý dữ liệu nếu chỉ số tra cứu cần tạo trước.
  • Nếu đầu vào lớn, hãy yêu cầu ước lượng bộ nhớ cho cấu trúc mới.

Nguồn và giấy phép

ONTER biên tập · original

Đánh giá prompt

Chọn số sao theo trải nghiệm của bạn. Bạn có thể sửa đánh giá sau một phút.

Prompt liên quan

Tài khoản Onter

Đăng nhập rồi tiếp tục việc đang làm.

Mở trang đăng nhập riêng nếu trình duyệt chưa hiển thị biểu mẫu.

Contact Me on Zalo