



Preview text:
BÀI TẬP CHƯƠNG I: Thuật toán tìm kiếm
- Mô tả thuật toán: Là thuật toán được thiết kế để xác đị vị trí củ nh a 1 phần tử cụ thể
trong một tập hợp dữ liệu
Bắt đầu từ phần tử đầu tiên của tập hợp, so sánh lần lượt các phần tử với giá trị cầ tìm n
Nếu : Tìm thấy phần tử khớp với giá trị cần tìm -> trả về vị trí của phầ tử đó n
Đi hết tập hợp mà không thấy -> trả về thông báo không tìm thấy INPUT: Dãy a1, a2, ...., an
OUTPUT: Vị trí của phần tử cần tìm - Giả mã
1. Nhập N và dãy a1, a2, ..., an 2. for i:=1 to do n
if a[i]= phần tử cụ thể then break else i:=0 3. in ra giá trị i Thuật toán tìm MIN/MAX
- Mô tả thuật toán: Là thuật toán được thiết kế để xác định phầ tử lớ n n nhất trong một tập hợp dữ liệu
Tạm gắn phần tử đầu tiên của danh sách là MAX/MIN
Duyệt qua từng phần tử trong danh sách So sánh từng phầ tử v n ới giá trị MAX/MIN
Nếu phần tử lớn hơn/bé hơn giá trị MAX/MIN -> tạm gắn MAX/MIN bằng giá trị của phần tử hiện tại
Nếu không -> bỏ qua và tiếp tục sang phần tử tiếp theo INPUT: Dãy a1, a2, ...., an OUTPUT: G iá trị lớn ất/ nh ỏ nh nhất của dãy số - Giả mã
1. Nhập N và dãy a1, a2, ..., an 2. Max/min := a1 3. For i:= 2 to do n If a[i] > max then Max:=a[i] 4. In ra a[i] Thuật toán tính n!
Mô tả thuật toán: Thuật toán tính n! (giai thừa) được sử dụng để tính tích của tất cả các số
nguyên dương từ 1 đến n. Xét n
Nếu n=0 đưa ra giai thừa =1 Nếu n khác 0
Gắn giá trị giai thừa = 1
Chạy vòng lặp từ 1->n , nhân giá trị giai thừa với mỗi số trong dãy
Kết thúc vòng lặp giá trị giai thừa chính là n! INPUT: số tự nhiên n OUTPUT: n! Giả mã 1. Nhập N 2. if n=0 then n!=1 3. else n! := 1 for i:=1 to do n n!= i * n! 4. In ra n! Thuật toán sắp xếp
Mô tả : Là thuật toán được sử dụng để sắp xếp dãy số theo thứ tự từ bé đế lớ n n hoặc từ lớn đến bé
Duyệt qua danh sách nhiều lần
Trong mỗi lần duyệt so sánh phầ tử n
hiện tại với phần tử sau nếu phầ tử sau lớ n hơn thì đổ n i chỗ
Lặp đến khi không còn hoán đổi nào xảy ra INPUT: Dãy a1, a2,..., an
OUTPUT: Dãy số đã được sắp xếp Giả mã :
1. Nhập N và dãy a1, a2, ..., an 2. For i:= 1 to n-1 do For j:=1 to n-i do
If a[j] > a[j+1] then đổi chỗ a[j] và a[j+1]
3. In ra dãy được sắp xếp