1. Trang chủ
  2. » Giáo án - Bài giảng

sắp xếp mảng bằng thuật toán tráo đổi và nổi bọt

11 325 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 11
Dung lượng 496,5 KB

Nội dung

Sắp xếp bằng trao đổi exchange sort 2.. Sắp xếp bằng lựa chọn selection sort Bài toán: Sắp xếp là bố trí lại thứ tự các đối tượng nhằm thoả mãn một yêu cầu nào đó.. Yêu cầu để theo đ

Trang 1

3 Sắp xếp bằng trao

đổi ( exchange sort)

2 Sắp xếp bằng lựa

chọn (selection sort)

Bài toán:

Sắp xếp là bố trí lại thứ tự các đối tượng nhằm thoả mãn một yêu cầu nào đó Yêu cầu để theo đó mà tiến hành sắp xếp gọi là khoá sắp xếp.

1 Sắp xếp (sorting)

Thủ tục lựa chọn:

Thủ tục trao đổi:

{thủ tục sắp xếp bằng lựa chọn}

Procedure sxep1;

Var i, j, min,tg: integer;

Begin

For i:= 1 to N-1 do Begin

Min:= i;

For j:= i+1 to N do

If K[min] > K[j] then min:=j;

tg:= K[i]; K[i]:= K[min]; K[min]:= tg;

End;

End;

Cho dãy số nguyên K = {k1, k2, …, kn} Cần sắp xếp lại các phần tử của K sao cho sau khi sắp xếp xong thì K trở thành dãy tăng dần.

8 13 19 24 27 30 65

13 24 65 8 19 27 30

Ví dụ: K=

Sau khi sắp xếp ta được dãy tăng

K=

{thủ tục sắp xếp bằng trao đổi}

Procudure sxep2;

Var i, M, tg: integer; OK: Boolean;

Begin M:=N;

Repeat

OK:= True; M:= M-1;

For i:= 1 to M do

IF K[i] > K[i+1] Then Begin

tg:= K[i]; K[i]:= K[i+1]; K[i+1]:= tg;

OK:= False;

End;

Until OK;

End;

Trang 2

Bắt đầu

i:=1, min:=i j:=i+1 K[min]>K[j] Min:=j

j:=j+1

j > N

Đổi chỗ k[min] với K[i]

i:=i+1

i >= N

S

Đ

S

Đ

S

Sắp xếp bằng lựa chọn

i=1

K=

min=1

N

Trang 3

Procedure sxep1;

Var i, j, min,tg: integer;

Begin

For i:= 1 to N-1 do Begin

Min:= i;

For j:= i+1 to N do

If K[min] > K[j] then min:=j;

tg:= K[i]; K[i]:= K[min]; K[min]:= tg;

End;

End;

i=1

j=2

K=

min=1

N

K[min]>K[ j ]?

Trang 4

j=2

min=1

K= 12 8 25 16 4 6 31 22

Procudure sxep;

Var i, j, k,tg: integer;

Begin

For i:= 1 to N-1 do Begin

Min:= i;

For j:= i+1 to N do

If K[min] > K[j] then min:=j;

tg:= K[i]; K[i]:= K[min]; K[min]:= tg;

End;

End;

Trang 5

Bắt đầu

M N

M M-1; i 0

ki> k i+1

M < 2

i i+1

i > M

Đ i k ổ i và ki+1

Sai

Sai

Đúng Sai

Đúng

Đúng

Sắp xếp bằng trao đổi

i=1

K=

Trang 6

Procudure sxep2;

Var i, M, tg: integer; OK: Boolean;

Begin

M:=N;

Repeat

OK:= True; M:= M-1;

For i:= 1 to M do

IF K[i] > K[i+1] Then Begin

tg:= K[i]; K[i]:= K[i+1]; K[i+1]:= tg;

OK:= False;

End;

Until OK;

End;

i=1

K=

Trang 7

j=2

min=1

K= T

K[min]>K[ j ]?

j=3 j=4 j=5 j=6 j=7 j=8

12

4

i=2 min=2

j=3

F

j=4

F

j=5

F

j=6

T

min=6

j=7

F

j=8

F

K=

K=

i=3 min=3

j=4

T

min=4

j=5

T

min=5

j=6

T

min=6

j=7

F

j=8

F 8

K=

Trang 9

B

C D

H

K

L

Trang 10

12 8 25 16 4 6 31 22

i = 1 2 3 4 5 6 7 8

i=7

K=

12

K=

M

i=1

F

i=2

F

i=3

T

i=4

T

i=5

F

i=6

12

K=

M

i=1

F

i=2

T

i=3

T

i=4

F

i=5

F 22

31 25

22 31

12 8

6 4

K=

Trang 11

4

2 3

5

6

7

Hình nh n i b t khí trong ả ổ ọ

n ướ c, b t có th tích l n n i ọ ể ớ ổ

lên tr ướ c

Ngày đăng: 29/12/2015, 22:32

TỪ KHÓA LIÊN QUAN

w