1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Bai 4 Bai Toan va thuat toan tt tiet 15 Exchange Sort

16 7 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 16
Dung lượng 882,28 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Là các thao tác được Cómột 2 dãy hữu hạn Nhập/xuấ Sơ đồ Liệt kê sắp xếp định sao cách : theo mộtt trình tự xác khối B1… cho sau khi thực hiện dãy thao tác ấy, B2… từ Input của bài toán, [r]

Trang 1

TRƯỜ NG THPT PHÚ MỸ

B µ i g i ¶ n g

BÀI TOÁN VÀ THUẬT

TOÁN (TT)

Giáo viên: Phan Thanh Hưởng

BÀI 4

Trang 2

CÂU HỎI ÔN TẬP

Em hãy nêu khái niệm thuật

toán?

Là một dãy hữu hạn các thao tác được sắp xếp theo một trình tự xác định sao cho sau khi thực hiện dãy thao tác ấy,

từ Input của bài toán, ta nhận được

Output cần tìm.

Có máy cách biểu diễn thuật

toán? Có 2

cách :

Các hình sau đây thể hiện thao tác

gì?

Nhập/xuấ t

So sánh Tính toán Trình tự thực hiện

Liệt kê B1…

B2…

B3…

.

Bn .

Sơ đồ khối

Trang 3

VÍ DỤ 2 BÀI TOÁN SẮP XẾP

trở thành dãy không giảm.

Ví dụ: dãy A gồm các số nguyên : 6, 1,

3, 5, 3, 10, 7 sau khi sắp xếp ta có

dãy : 1, 3, 3, 5, 6, 7, 10

1) Xác định bài

toán-

Input:

- Output:

Dãy A gồm N số nguyên

aDãy A được sắp xếp thành dãy 1,a2 , ,aN không giảm

2) Ý tưởng: Với mỗi cặp số hạng đứng kề

nhau, nếu số đứng trước lớn hơn số đứng

sau ta đổi chổ chúng cho nhau Lặp lại cho

đến khi không còn đổi chổ nào xảy ra nữa

Thuật toán sắp xếp bằng tráo đổi (Exchange Sort)

Ý tưởng?

Trang 4

6 1 3 5 3 10

7

1 6 3 5 3 10

7

1 3 6 5 3 10 7

1 3 5 6 3 10

7

1 3 5 3 6 10 7

1 3 5 3 6 7

10

Trang 5

Mô phỏng thực tế

3) Thuật toán

a) Cách liệt

kêBước 1 Nhập N, các số hạng a1,a2, ,aN

Bước 2 M  N ;

Bước 3 Nếu M<2 ,dãy A đã được sắp xếp, 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ì hoán đổi ai và ai+1;

Bước 8 Quay lại bước 5

Trang 6

a) Sơ đồ khối Nhập N và

a1,a2, ,aN MN

ai>ai+

1 ?

MM-1; i0 ii+1 M<2?

i>M?

Tráo đổi ai và

ai+1

Đưa ra dãy A rồi kết thúc

Đúng

Sai Sai

Sai

Đúng

Đúng

Trang 7

a) Cách liệt kê

B1 Nhập N, các số

a 1 ,a 2 , ,a N

B2 M  N ;

B3 Nếu M<2 , dãy A

’ được sx ,

kết thúc ;

B4 MM-1, i0;

B5 ii+1;

B6 Nếu i>M, quay lại b3 ;

B7 Nếu a i > a i+1 hoán

đổi a i và a i+1 ;

B8 Quay lại b5

Nhập N và

a1,a2, ,aN

MN

ai>ai+

1 ?

MM-1; i0 ii+1

M<2

?

i>M

?

Tráo đổi ai và

ai+1

Đưa ra dãy A được sx, kết thúc

Đúng

Sa i Sai

Sai

Đúng

Đúng

b)Sơ đồ khối

Trang 8

5 4

3 2

B1 Nhập N,

a 1 ,a 2 , ,a N B2 M  N ; B3 Nếu M<2, dãy A được

sx, kt;

B4 MM-1, i0; B5 ii+1;

B6 Nếu i>M, quay lại b3;

B7 Nếu a i > a i+1 , hoán đổi a i và

a i+1 ; B8 Quay lại b5.

MÔ TẢ THUẬT TOÁN

6 3

2

1 2 3 4 5

1

Trang 9

6 5

4 3

2 1

Lần duyệt thứ nhất

6

B1 Nhập N,

a 1 ,a 2 , ,a N

B2 M  N ;

B3 Nếu M<2, dãy A được sx, kt;

B4 MM-1, i0;

B5 ii+1;

B6 Nếu i>M, quay lại b3;

B7 Nếu a i >

a i+1 , hoán đổi

a i và a i+1 ;

B8 Quay lại b5.

N=6

Trang 10

Lần duyệt thứ hai

6 5

4 3

2

B1 Nhập N,

a 1 ,a 2 , ,a N

B2 M  N ;

B3 Nếu M<2, dãy A được sx, kt;

B4 MM-1, i0;

B5 ii+1;

B6 Nếu i>M, quay lại b3;

B7 Nếu a i >

a i+1 , hoán đổi

a i và a i+1 ;

B8 Quay lại b5.

N=6

Trang 11

6 4

3 2

Lần duyệt thứ ba

4

i

B1 Nhập N,

a 1 ,a 2 , ,a N

B2 M  N ;

B3 Nếu M<2, dãy A được sx, kt;

B4 MM-1, i0;

B5 ii+1;

B6 Nếu i>M, quay lại b3;

B7 Nếu a i >

a i+1 , hoán đổi

a i và a i+1 ;

B8 Quay lại b5.

N=6

Trang 12

Lần duyệt thứ tư

6 3

2

4

i

3 2

1

i

Lần duyệt thứ năm

B1 Nhập N,

a 1 ,a 2 , ,a N

B2 M  N ;

B3 Nếu M<2, dãy A được sx, kt;

B4 MM-1, i0;

B5 ii+1;

B6 Nếu i>M, quay lại b3;

B7 Nếu a i >

a i+1 , hoán đổi

a i và a i+1 ;

B8 Quay lại b5.

N=6

Trang 13

Nhận xét thuật toán

- Ta thấy quá trình so

sánh và đổi chỗ sau

mỗi lần duyệt chỉ thực

hiện với dãy đã bỏ bớt

số hạng cuối dãy Biến

M làm điều này, M có

giá trị khởi tạo là N,

sau mỗi lần duyệt M

giảm một đơn vị cho

đến khi M<2

- i là biến chỉ số thay

đổi lần lượt từ 0 đến

M+1

B1 Nhập N,

a 1 ,a 2 , ,a N

B2 M  N ;

B3 Nếu M<2, dãy A được sx, kt;

B4 MM-1, i0;

B5 ii+1;

B6 Nếu i>M, quay lại b3;

B7 Nếu a i >

a i+1 , hoán đổi

a i và a i+1 ;

B8 Quay lại b5.

Trang 14

* Câu hỏi cũng cố kiến thức

Từ thuật toán sắp xếp

dãy không giảm bên

theo em cần sửa đổi

bước nào để trở thành

thuật toán sắp xếp

dãy không tăng?

a) Cách liệt kê

B1 Nhập N, các số

a 1 ,a 2 , ,a N B2 M  N ; B3 Nếu M<2 , dãy A ’ được sx , kết

thúc ;

B4 MM-1, i0;

B5 ii+1;

B6 Nếu i>M, quay lại b3 ; B7 Nếu a i > a i+1 hoán đổi a i và a i+1 ;

B8 Quay lại b5

a i < a i+1

Trang 15

Bài tập ứng dụng

sao cho số chẵn đứng trước số lẻ

đứng sau.

Ngày đăng: 14/06/2021, 23:37

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w