Tìm kiếm Bài giảng
Bài 4. Bài toán và thuật toán

- 0 / 0
(Tài liệu chưa được thẩm định)
Nguồn:
Người gửi: Nguyễn Thị Diễm Quỳnh
Ngày gửi: 09h:27' 17-10-2023
Dung lượng: 850.7 KB
Số lượt tải: 15
Nguồn:
Người gửi: Nguyễn Thị Diễm Quỳnh
Ngày gửi: 09h:27' 17-10-2023
Dung lượng: 850.7 KB
Số lượt tải: 15
Số lượt thích:
0 người
CHÀO MỪNG CÔ VÀ CÁC BẠN ĐẾN
VỚI BUỔI THUYẾT TRÌNH CỦA
NHÓM MÌNH
01 Thuật toán tráo đổi
THUẬT TOÁN
SẮP XẾP
02
Thuật toán lựa chọn
01
Thuật toán tráo đổi
. Input: Dãy A gồm N số nguyên a1 …. aN
. Output: Dãy A được sắp xếp lại thành dãy không tăng
.Ý tưởng
Với mỗi cặp số hạng đứng liền
kề trong dãy, nếu số trước lớn
hơn số sau ta đổi chỗ chúng cho
nhau. Việc đó được lặp lại, cho
đến khi không có sự đổi chỗ
nào xảy ra nữa .
Nhập N và a1 …. aN
M
N
M<2?
S
M
M – 1; i
i
Đ
Tráo đổi ai và ai+1 ?
Đ
i+1
i>M?
S
ai < a i + 1 ?
S
0
. Mô tả thuật toán
Bước 1: Nhập N, các số hạng a1,…,aN
Bước 2: M N;
Bước 3: Nếu M < 2 thì đưa ra dãy A đã được sắp xếp
rồi kết thúc;
Bước 4: M M – 1, i 0;
Bước 5: i i + 1;
Bước 6: Nếu i > M thì quay lại bước 3;
Bước 7: Nếu ai< ai+1 thì đổi chỗ ai và ai+1;
Bước 8: Quay lại bước 5.
02
Thuật toán lựa chọn
. Input: Mảng N [ a1 …. aN ]
Biến i
. Output: Mảng N được sắp xếp thành dãy không giảm
*Ý tưởng
Thuật toán sắp xếp chọn sẽ sắp xếp một
mảng bằng cách đi tìm phần tử có giá trị
nhỏ nhất(giả sử với sắp xếp mảng tăng
dần) trong đoạn đoạn chưa được sắp xếp
và đổi cho phần tử nhỏ nhất đó với phần
tử ở đầu đoạn chưa được sắp xếp(không
phải đầu mảng).
Nhập N [ a1 …. aN ]
Biến đếm : i
i=1
Tìm phần tử nhỏ nhất a[min] trong
mảng N [ a1 …. aN ]
Hoán vị a[min] và a[i]
i=i+1
Đ
i
S
Thông báo và kết thúc
*Mô tả thuật toán
Bước 1: Nhập N [ a1 …. aN ]
Biến đếm i
Bước 2: i=1.
Bước 3: Tìm phần tử a[min] nhỏ nhất trong dãy hiện hành từ a[i] đến a[n].
Bước 4: Hoán vị a[min] và a[i]
Bước 5: Nếu iNgược lại: Dừng
HÌNH ẢNH MINH HỌA
HÌNH ẢNH MINH HỌA
VỚI BUỔI THUYẾT TRÌNH CỦA
NHÓM MÌNH
01 Thuật toán tráo đổi
THUẬT TOÁN
SẮP XẾP
02
Thuật toán lựa chọn
01
Thuật toán tráo đổi
. Input: Dãy A gồm N số nguyên a1 …. aN
. Output: Dãy A được sắp xếp lại thành dãy không tăng
.Ý tưởng
Với mỗi cặp số hạng đứng liền
kề trong dãy, nếu số trước lớn
hơn số sau ta đổi chỗ chúng cho
nhau. Việc đó được lặp lại, cho
đến khi không có sự đổi chỗ
nào xảy ra nữa .
Nhập N và a1 …. aN
M
N
M<2?
S
M
M – 1; i
i
Đ
Tráo đổi ai và ai+1 ?
Đ
i+1
i>M?
S
ai < a i + 1 ?
S
0
. Mô tả thuật toán
Bước 1: Nhập N, các số hạng a1,…,aN
Bước 2: M N;
Bước 3: Nếu M < 2 thì đưa ra dãy A đã được sắp xếp
rồi kết thúc;
Bước 4: M M – 1, i 0;
Bước 5: i i + 1;
Bước 6: Nếu i > M thì quay lại bước 3;
Bước 7: Nếu ai< ai+1 thì đổi chỗ ai và ai+1;
Bước 8: Quay lại bước 5.
02
Thuật toán lựa chọn
. Input: Mảng N [ a1 …. aN ]
Biến i
. Output: Mảng N được sắp xếp thành dãy không giảm
*Ý tưởng
Thuật toán sắp xếp chọn sẽ sắp xếp một
mảng bằng cách đi tìm phần tử có giá trị
nhỏ nhất(giả sử với sắp xếp mảng tăng
dần) trong đoạn đoạn chưa được sắp xếp
và đổi cho phần tử nhỏ nhất đó với phần
tử ở đầu đoạn chưa được sắp xếp(không
phải đầu mảng).
Nhập N [ a1 …. aN ]
Biến đếm : i
i=1
Tìm phần tử nhỏ nhất a[min] trong
mảng N [ a1 …. aN ]
Hoán vị a[min] và a[i]
i=i+1
Đ
i
S
Thông báo và kết thúc
*Mô tả thuật toán
Bước 1: Nhập N [ a1 …. aN ]
Biến đếm i
Bước 2: i=1.
Bước 3: Tìm phần tử a[min] nhỏ nhất trong dãy hiện hành từ a[i] đến a[n].
Bước 4: Hoán vị a[min] và a[i]
Bước 5: Nếu i
HÌNH ẢNH MINH HỌA
HÌNH ẢNH MINH HỌA
 








Các ý kiến mới nhất