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

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

Đ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

1 Sắp xếp (sorting) Bài toán: Sắp xếp lựa chọn (selection sort) Thủ tục lựa chọn: Sắp xếp trao đổi ( exchange sort) Thủ tục trao đổi: td lc Ct.1 Ct.2 {thủ tục xếp trao đổi} Sắ p xếp làp xế bốp trí lại thứ tự đối tượng Procudure {thủ tục sắsxep2; lựa chọn} nhằ m thoả mãinteger; n yê u Boolean; cầu Yêu Var i, M, tg: OK: Procedure sxep1; cầ u để theo mà tiến hành xếp gọi Begin Cho nguyêinteger; n K = {k1, k2, …, kn} Cần Var dãyi,số j, min,tg: khoáM:=N; xếp sắBegin p xếp lại phần tử K cho sau Repeat For xếpi:=xong K trở thành dãy tăng to N-1 dầnBegin OK:= True; M:= M-1; i:= 113 to M24 65 19 27 30 Ví dụ: For K= Min:= i; IF K[i] > K[i+1] Then For N doc dãy tăng Sau khiBegin sắpj:= xếi+1 p tato đượ If K[min] > K[j]K[i+1]; then min:=j; tg:= K[i]; K[i]:= K[i+1]:= tg; 13 K[min]; 19 24 K[min]:= 27 30 tg; 65 K= tg:= K[i];8 K[i]:= OK:= False; End; End; End; Until OK; End; K= 12 i=1 25 16 31 22 N min=1 Bắt đầu Sắp xếp lựa chọn i:=1, min:=i j:=i+1 Đ K[min]>K[j] Min:=j S S Kết thúc Đ i >= N i:=i+1 j:=j+1 j>N S Đ Đổi chỗ k[min] với K[i] ► j=2 K= 12 i=1 25 min=1 Procedure sxep1; Var 16 31 K[min]>K[ j ]? 22 N i, j, min,tg: integer; Begin For i:= to N-1 Begin Min:= i; For j:= i+1 to N If K[min] > K[j] then min:=j; tg:= K[i]; K[i]:= K[min]; K[min]:= tg; End; End; ► j=2 K= 12 25 16 31 22 i=1 min=1 Procudure sxep; Var i, j, k,tg: integer; Begin For i:= to N-1 Begin Min:= i; For j:= i+1 to N If K[min] > K[j] then min:=j; tg:= K[i]; K[i]:= K[min]; K[min]:= tg; End; End; ► i=1 K= 12 25 16 Bắt đầu M 31 22 M M=N Sắp xếp trao đổi N Đúng MM Sai ki> k i+1 Sai ► i=1 K= 12 25 16 31 22 M M=N Procudure sxep2; Var i, M, tg: integer; OK: Boolean; Begin M:=N; Repeat OK:= True; M:= M-1; For i:= to M 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; ► j=2 K= 12 T i=1 min=1 j=3 j=4 F 25 F 16 T min=2 K[min]>K[ j ]? j=3 K= i=2 j=5 j=4 j=6 min=5 j=5 j=6 F 25 F 16 F 12 T 6 25 i=3 • j=7 j=8 F 31 F 22 min=6 j=4 j=8 F F 31 F 22 min=2 K= j=7 min=3 T 16 min=4 j=6 j=5 T 12 min=5 T j=7 j=8 F 31 F 22 min=6 • • • K= 12 16 22 25 31 ► F F G B G B E E K • Sắp xếp K để làmII gì? JJ A A D H H D C C • Làm để xếp? LL ► i = i=1 K= i=2 12 T i=3 F i=4 i=5 25 T 16 T T K= i=2 F i=3 i=5 i=4 12 F 16 T T i=7 F 31 T 22 31 M So sánh Ki > Ki + i=1 i=6 M=N i=6 F 25 T 22 25 31 M i=1 K= i=2 F i=4 i=3 12 T T i=5 F 16 F 22 25 31 25 31 M • • • • K= 12 31 22 ► Hình ảnh bọt khí nước, bọt tích lớn lên trước ► [...]...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 5 3 4 2 6 7 1 ► ... K[min]; K[min]:= tg; End; End; ► i=1 K= 12 25 16 Bắt đầu M 31 22 M M=N Sắp xếp trao đổi N Đúng MM Sai ki> k i+1 Sai ► i=1 K= 12 25 16 31...K= 12 i=1 25 16 31 22 N min=1 Bắt đầu Sắp xếp lựa chọn i:=1, min:=i j:=i+1 Đ K[min]>K[j] Min:=j S S Kết thúc Đ i >= N i:=i+1 j:=j+1 j>N S Đ Đổi chỗ k[min] với K[i] ► j=2 K= 12 i=1 25 min=1... j=7 j=8 F 31 F 22 min=6 • • • K= 12 16 22 25 31 ► F F G B G B E E K • Sắp xếp K để làmII gì? JJ A A D H H D C C • Làm để xếp? LL ► i = i=1 K= i=2 12 T i=3 F i=4 i=5 25 T 16 T T K= i=2 F i=3 i=5

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

Từ khóa liên quan

Mục lục

  • Slide 1

  • Slide 2

  • Slide 3

  • Slide 4

  • Slide 5

  • Slide 6

  • Slide 7

  • Slide 8

  • Slide 9

  • Slide 10

  • Slide 11

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan