NEW
Font size
WorksheetsChương 5: Thuật toán
Total questions: 60
Worksheet time: 30mins
Thuật toán là gì?
Chuỗi hành động từng bước để giải quyết một bài toán
Bộ nhớ RAM
Phần mềm ứng dụng
Thiết bị ngoại vi
Mục đích của thuật toán là:
Giải quyết một bài toán
Sao lưu dữ liệu
Quản lý CPU
Tăng tốc phần cứng
Thuật toán có số bước hữu hạn nhằm đảm bảo:
Thuật toán sẽ kết thúc
RAM không mất dữ liệu
HDD hoạt động nhanh hơn
CPU tăng tốc
Thuật toán đúng nhưng không hiệu quả nghĩa là:
Cho kết quả đúng nhưng tốn nhiều tài nguyên
Cho kết quả sai
Không thể thực thi
Không có đầu ra
Thuật toán không phụ thuộc vào:
Ngôn ngữ lập trình
CPU
RAM
HDD
Khi viết thuật toán bằng ngôn ngữ lập trình gọi là:
Chương trình
Flowchart
Pseudocode
Backup
Input trong thuật toán là:
Dữ liệu đầu vào
Kết quả đầu ra
Bộ nhớ RAM
CPU
Output trong thuật toán là:
Kết quả đầu ra
Dữ liệu đầu vào
Bộ nhớ ROM
Cache
Giả mã là gì?
Cách mô tả thuật toán không phụ thuộc ngôn ngữ
Bộ nhớ ngoài
Phần mềm tiện ích
Cache CPU
Mục đích chính của giả mã:
Biểu diễn logic thuật toán rõ ràng
Sao lưu dữ liệu
Quản lý tiến trình
Tăng tốc CPU
Ưu điểm của giả mã:
Dễ đọc và dễ hiểu
Tăng tốc CPU
Sao lưu dữ liệu
Quản lý tiến trình
Giả mã có cần cú pháp chặt chẽ không?
Không
Có
Tùy hệ điều hành
Tùy CPU
Lưu đồ thuật toán là gì?
Biểu diễn trực quan của thuật toán bằng hình vẽ
Bộ nhớ ngoài
Phần mềm tiện ích
Cache CPU
Mục đích của lưu đồ:
Giúp hình dung rõ các bước xử lý
Sao lưu dữ liệu
Quản lý tiến trình
Tăng tốc CPU
Ký hiệu hình oval trong lưu đồ:
Bắt đầu - Kết thúc
Bước xử lý
Điều kiện rẽ nhánh
Luồng điều khiển
Ký hiệu hình chữ nhật trong lưu đồ:
Bước xử lý
Bắt đầu - Kết thúc
Điều kiện rẽ nhánh
Luồng điều khiển
Ký hiệu hình thoi trong lưu đồ:
Rẽ nhánh / điều kiện
Bắt đầu - Kết thúc
Bước xử lý
Luồng điều khiển
Mũi tên trong lưu đồ biểu diễn:
Luồng điều khiển
Bắt đầu - Kết thúc
Bước xử lý
Điều kiện
Linear Search hoạt động thế nào?
Duyệt từng phần tử lần lượt
Tìm phần tử nhỏ nhất
Chèn phần tử vào dãy đã sắp xếp
So sánh cặp liền kề
Linear Search có cần dãy sắp xếp không?
Không
Có
Tùy CPU
Tùy RAM
Bubble Sort có đặc điểm:
So sánh và hoán đổi các cặp liên kề
Tìm phần tử nhỏ nhất
Chèn phần tử vào dãy đã sắp xếp
Duyệt tuần tự
Sau mỗi vòng Bubble Sort, phần tử nào ổn định?
Phần tử lớn nhất về cuối dãy
Phần tử nhỏ nhất về đầu dãy
Phần tử bất kỳ
Không có
Bubble Sort kết thúc khi:
Không còn hoán đổi
RAM mất dữ liệu
CPU tăng tốc
HDD hỏng
Selection Sort hoạt động:
Đưa phần tử nhỏ nhất về đầu
So sánh cặp liền kề
Chèn phần tử vào dãy đã sắp xếp
Duyệt tuần tự
Sau vòng đầu Selection Sort:
Phần tử đầu là nhỏ nhất
Phần tử cuối là lớn nhất
Không thay đổi
RAM mất dữ liệu
Insertion Sort có đặc điểm:
Chèn phần tử vào dãy đã sắp xếp
So sánh cặp liên kề
Tìm phần tử nhỏ nhất
Duyệt tuần tự
Insertion Sort phù hợp với:
Dãy nhỏ hoặc gần sắp xếp
Dãy lớn chưa sắp xếp
RAM
Các thuật toán Bubble, Selection, Insertion đều là gì?
Thuật toán so sánh
Không cần so sánh
Thuật toán tìm kiếm
Cache CPU
Phân tích bài toán nhằm mục đích gì?
Xác định đầu vào và đầu ra
Sao lưu dữ liệu
Quản lý tiến trình
Tăng tốc CPU
Thuật toán tối ưu là gì?
Cho kết quả đúng với chi phí thấp nhất
Cho kết quả sai
Không thể thực thi
Không có đầu ra
Kiểm tra thuật toán nhằm mục đích gì?
Phát hiện lỗi logic
Sao lưu dữ liệu
Quản lý tiến trình
Tăng tốc CPU
Thuật toán sai logic gây hậu quả gì?
Cho kết quả sai
Cho kết quả đúng
Không ảnh hưởng
Tăng tốc CPU
Thứ tự các bước trong thuật toán cần như thế nào?
Phải xác định rõ ràng
Không cần xác định
Tùy CPU
Tùy RAM
Thuật toán có thể biểu diễn bằng gì?
Giả mã hoặc lưu đồ
RAM
HDD
CPU
Thuật toán tốt cần đảm bảo điều gì?
Đúng và hiệu quả
Sai và hiệu quả
Đúng nhưng không hiệu quả
Sai nhưng nhanh
Ưu điểm của giả mã là gì?
Đơn giản, trực quan, dễ phát hiện lỗi logic
Tăng tốc CPU
Sao lưu dữ liệu
Quản lý tiến trình
Hạn chế của lưu đồ thuật toán là gì?
Cồng kềnh với thuật toán lớn, khó chỉnh sửa, không thể thực thi trực tiếp
Dễ đọc, dễ hiểu
Tăng tốc CPU
Sao lưu dữ liệu
Nguyên tắc về lưu đồ đúng cần đảm bảo điều gì?
Có điểm bắt đầu/kết thúc rõ ràng, các bước nối bằng mũi tên, logic không mơ hồ
Không cần điểm kết thúc
Tùy CPU
Tùy RAM
Ưu điểm của lưu đồ thuật toán là gì?
Trực quan, dễ hiểu, phù hợp người mới học
Tăng tốc CPU
Sao lưu dữ liệu
Quản lý tiến trình
Hạn chế của lưu đồ là gì?
Cồng kềnh, khó chỉnh sửa khi thuật toán phức tạp
Dễ đọc
Dễ hiểu
Phù hợp giảng dạy
Linear Search có ưu điểm gì?
Dễ hiểu, dễ triển khai, không cần sắp xếp trước
Tốc độ cao với dữ liệu lớn
Không cần input
Không có output
Linear Search có hạn chế gì?
Thời gian tìm kiếm tăng tuyến tính theo số phần tử
Không thể áp dụng cho dãy nhỏ
Không thể áp dụng cho dữ liệu chưa sắp xếp
Không thể triển khai
Bubble Sort cho kết quả sau mỗi vòng lặp như thế nào?
Phần tử lớn nhất về cuối dãy
Phần tử nhỏ nhất về đầu dãy
Không thay đổi
RAM mất dữ liệu
Selection Sort có cơ chế hoạt động như thế nào?
Tìm phần tử nhỏ nhất trong dãy chưa sắp xếp và đưa về đầu
So sánh cặp liền kề
Chèn phần tử vào dãy đã sắp xếp
Duyệt tuần tự
Insertion Sort có cơ chế hoạt động như thế nào?
Lấy phần tử tiếp theo, tìm vị trí thích hợp để chèn vào dãy đã sắp xếp
So sánh cặp liền kề
Tìm phần tử nhỏ nhất
Duyệt tuần tự
Insertion Sort có ưu điểm gì?
Phù hợp với danh sách nhỏ hoặc gần sắp xếp
Phù hợp với dữ liệu lớn
Không cần input
Không có output
Các thuật toán Bubble, Selection, Insertion đều dựa trên điều gì?
Dựa trên so sánh
Không cần so sánh
Dựa trên tìm kiếm
Cache CPU
Phân tích bài toán nhằm mục đích gì?
Xác định input và output
Sao lưu dữ liệu
Quản lý tiến trình
Tăng tốc CPU
Thuật toán tối ưu cần đảm bảo điều gì?
Kết quả đúng với chi phí thấp nhất
Kết quả sai
Không có output
Không thể thực thi
Kiểm tra thuật toán nhằm mục đích gì?
Phát hiện lỗi logic
Sao lưu dữ liệu
Quản lý tiến trình
Tăng tốc CPU
Thuật toán sai logic gây điều gì?
Kết quả sai
Kết quả đúng
Không ảnh hưởng
Tăng tốc CPU
Thứ tự các bước trong thuật toán cần như thế nào?
Phải xác định rõ ràng
Không cần xác định
Tùy CPU
Tùy RAM
Thuật toán có thể biểu diễn bằng gì?
Giả mã hoặc lưu đồ
RAM
HDD
CPU
Thuật toán tốt cần đảm bảo:
Đúng và hiệu quả
Sai và hiệu quả
Đúng nhưng không hiệu quả
Sai nhưng nhanh
Đặc trưng cơ bản của thuật toán gồm:
Xác định, hữu hạn, input, output, hiệu quả
RAM, ROM, HDD, SSD
GUI, CLI, UI
Backup, SaaS, EULA
Thuật toán đúng:
Luôn cho kết quả chính xác
Cho kết quả sai
Không thể thực thi
Không có output
Thuật toán hiệu quả:
Cho kết quả đúng với chi phí thấp nhất
Cho kết quả sai
Không thể thực thi
Không có output
Giả mã sử dụng cấu trúc quen thuộc nào?
IF-ELSE, WHILE, FOR, INPUT, OUTPUT
RAM, ROM, HDD
GUI, CLI, UI
Backup, SaaS, EULA
Ưu điểm của lưu đồ:
Trực quan, dễ trình bày, hữu ích trong phân tích và thiết kế
Tăng tốc CPU
Sao lưu dữ liệu
Quản lý tiến trình
Hạn chế của lưu đồ:
Cồng kềnh, khó chỉnh sửa, không thể thực thi trực tiếp
Dễ đọc
Dễ hiểu
Phù hợp giảng dạy
