Cách giải thuật sắp xếp chọn (Selection Sort) làm việc môn Tin học | Trường đại học kinh doanh và công nghệ Hà Nội

Cách giải thuật sắp xếp chọn (Selection Sort) làm việcTừ vị trí đầu tiên trong danh sách đã được sắp xếp, toàn bộ danh sách được duyệt một cách liên tục. Vị trí đầu tiên có giá trị 14, chúng ta tìm toàn bộ danh sách và thấy rằng 10 là giá trị nhỏ nhất. Tài liệu giúp bạn tham  khảo, ôn tập và đạt kết quả cao. Mời đọc đón xem!

lOMoARcPSD| 48641284
Sp xếp chn (Selection Sort)
Cách gii thut sp xếp chn (Selection Sort) làm vic
T v trí đầu tiên trong danh sách đã đưc sp xếp, toàn b danh sách được duyt mt cách
liên tc. V trí đầu tiên có giá tr 14, chúng ta tìm toàn b danh sách và thy rng 10 là giá tr
nh nht.
Do đó, chúng ta thay thế 14 vi 10. Sau mt vòng lp, giá tr 10 thay thế cho giá tr 14 ti v
trí đầu tiên trong danh sách đã được sp xếp. Chúng ta tráo đổi hai giá tr này.
Ti v trí th hai, giá tr 33, chúng ta tiếp tc quét phn còn li ca danh sách theo th t
tng phn t.
Chúng ta thy rng 14 giá tr nh nht th hai trong danh sách nên xut
hin v trí th hai. Chúng ta tráo đổi hai giá tr này.
Sau hai vòng lp, hai giá tr nh nhất đã được đặt ti phần đầu của danh sách đã
đưc sp xếp.
Tiến trình tương tự s đưc áp dng cho phn còn li của danh sách. Các hình dưới
minh ha cho các tiến trình này.
lOMoARcPSD| 48641284
Tiếp theo chúng ta s theo dõi mt s khía cnh khác ca gii thut sp xếp chn.
Gii thut cho sp xếp chn (Selection Sort)
c 1: Thiết lp MIN vế v trí 0
c 2: Tìm kiếm phn t nh nht trng danh sách
c 3: Trá đổi vi giá tr ti v trí MIN
c 4: Tăng MIN đế tr ti phn t tiếp the
c 5: Lp li ch ti khi tàn b danh sách đã đửợc săp xếp
Sp xếp ni bt (Bubble sort)
lOMoARcPSD| 48641284
Gii thut sp xếp ni bt bắt đầu vi hai phn t đầu tiên, so sánh chúng để kim
tra xem phn t nào lớn hơn.
Trong trường hp này, 33 lớn hơn 14, do đó hai phần t này đã theo thứ t. Tiếp
đó chúng ta so sánh 33 và 27.
Chúng ta thy rng 33 lớn hơn 27, do đó hai giá trị này cần được tráo đổi th t.
Mng mới thu được s như sau:
Tiếp đó chúng ta so sánh 33 và 35. Hai giá trị này đã theo thứ t.
Sau đó chúng ta so sánh hai giá trị kế tiếp là 35 và 10.
Vì 10 nh hơn 35 nên hai giá trị này chưa theo thứ t.
Tráo đi th t hai giá trị. Chúng ta đã tiến ti cui mng. Vy sau mt vòng lp,
mng s trông như sau:
lOMoARcPSD| 48641284
Để đơn giản, tiếp theo mình s hin th hình nh ca mng sau tng vòng lp. Sau
ln lp th hai, mng s trông giống như:
Sau mi vòng lp, ít nht mt giá tr s di chuyn ti v trí cui. Sau vòng lp th 3,
mng s trông giống như:
Và khi không cần tráo đổi th t phn t nào na, gii thut sp xếp ni bt thy
rng mảng đã được sp xếp xong.
| 1/4

Preview text:

lOMoAR cPSD| 48641284
Sắp xếp chọn (Selection Sort)
Cách giải thuật sắp xếp chọn (Selection Sort) làm việc
Từ vị trí đầu tiên trong danh sách đã được sắp xếp, toàn bộ danh sách được duyệt một cách
liên tục. Vị trí đầu tiên có giá trị 14, chúng ta tìm toàn bộ danh sách và thấy rằng 10 là giá trị nhỏ nhất.
Do đó, chúng ta thay thế 14 với 10. Sau một vòng lặp, giá trị 10 thay thế cho giá trị 14 tại vị
trí đầu tiên trong danh sách đã được sắp xếp. Chúng ta tráo đổi hai giá trị này.
Tại vị trí thứ hai, giá trị 33, chúng ta tiếp tục quét phần còn lại của danh sách theo thứ tự từng phần tử.
Chúng ta thấy rằng 14 là giá trị nhỏ nhất thứ hai trong danh sách và nó nên xuất
hiện ở vị trí thứ hai. Chúng ta tráo đổi hai giá trị này.
Sau hai vòng lặp, hai giá trị nhỏ nhất đã được đặt tại phần đầu của danh sách đã được sắp xếp.
Tiến trình tương tự sẽ được áp dụng cho phần còn lại của danh sách. Các hình dưới
minh họa cho các tiến trình này. lOMoAR cPSD| 48641284
Tiếp theo chúng ta sẽ theo dõi một số khía cạnh khác của giải thuật sắp xếp chọn.
Giải thuật cho sắp xếp chọn (Selection Sort)
Bước 1: Thiết lập MIN vế vị trí 0
Bước 2: Tìm kiếm phần tử nhỏ nhầt trỏng danh sách
Bước 3: Tráỏ đổi với giá trị tại vị trí MIN
Bước 4: Tăng MIN đế trỏ tới phần tử tiếp theỏ
Bước 5: Lặp lại chỏ tới khi tỏàn bộ danh sách đã đửợc săp xếp
Sắp xếp nổi bọt (Bubble sort) lOMoAR cPSD| 48641284
Giải thuật sắp xếp nổi bọt bắt đầu với hai phần tử đầu tiên, so sánh chúng để kiểm
tra xem phần tử nào lớn hơn.
Trong trường hợp này, 33 lớn hơn 14, do đó hai phần tử này đã theo thứ tự. Tiếp
đó chúng ta so sánh 33 và 27.
Chúng ta thấy rằng 33 lớn hơn 27, do đó hai giá trị này cần được tráo đổi thứ tự.
Mảng mới thu được sẽ như sau:
Tiếp đó chúng ta so sánh 33 và 35. Hai giá trị này đã theo thứ tự.
Sau đó chúng ta so sánh hai giá trị kế tiếp là 35 và 10.
Vì 10 nhỏ hơn 35 nên hai giá trị này chưa theo thứ tự.
Tráo đổi thứ tự hai giá trị. Chúng ta đã tiến tới cuối mảng. Vậy là sau một vòng lặp, mảng sẽ trông như sau: lOMoAR cPSD| 48641284
Để đơn giản, tiếp theo mình sẽ hiển thị hình ảnh của mảng sau từng vòng lặp. Sau
lần lặp thứ hai, mảng sẽ trông giống như:
Sau mỗi vòng lặp, ít nhất một giá trị sẽ di chuyển tới vị trí cuối. Sau vòng lặp thứ 3,
mảng sẽ trông giống như:
Và khi không cần tráo đổi thứ tự phần tử nào nữa, giải thuật sắp xếp nổi bọt thấy
rằng mảng đã được sắp xếp xong.