/codegym.vn/ - 154
2
5
4
8
1
9
Kết thúc lượt thứ nhất, số 9 đã được “nổi” lên trên cùng. Chúng ta sẽ thực hiện lượt
thứ hai với 5 phần tử còn lại là (2 5 4 8 1). Kết thúc lượt thứ hai thì số 8 sẽ được nổi
lên. Và cứ như vậy cho đến khi tất cả các phần tử đứng đúng ở vị trí của nó.
2
4
5
1
8
9
Lượt thứ hai – Số 8 được “nổi” lên
2
4
1
5
8
9
Lượt thứ ba – Số 5 được “nổi” lên
2
1
4
5
8
9
Lượt thứ tư – Số 4 được “nổi” lên
1
2
4
5
8
9
Lượt thứ năm – Số 2 được “nổi” lên
Sắp xếp từ dưới lên
Sắp xếp từ dưới lên so sánh (và đổi chỗ nếu cần) bắt đầu từ việc so sánh cặp phần
tử thứ n-1 và n. Tiếp theo là so sánh cặp phần tử thứ n-2 và n-1,... cho đến khi so
sánh và đổi chỗ cặp phần tử thứ nhất và thứ hai. Sau bước này phần tử nhỏ nhất đã
được “nổi” lên vị trí trên cùng (nó giống như hình ảnh của các "bọt" khí nhẹ hơn được
nổi lên trên). Tiếp theo tiến hành với các phần tử từ thứ 2 đến thứ n.
Mã giả
Sắp xếp từ trên xuống
1. procedure bubble_sort1
(
list L
,
number n
)
//n=listsize
2.
For
number i
from
n downto
2
3.
for
number j
from
1
to
(
i
-
1
)
4.
if
L
[
j
]
>
L
[
j
+
1
]
//nếu chúng không đúng thứ tự
5. swap
(
L
[
j
],
L
[
j
+
1
])
//đổi chỗ chúng cho nhau
6. endif
7. endfor
8. endfor
9. endprocedure
Sắp xếp từ dưới lên
1. procedure bubble_sort2
(
list L
,
number n
)
//n=listsize
2.
For
number i
from
1
to n
-
1
3.
for
number j
from
n
-
1
downto i
4.
if
L
[
j
]
>
L
[
j
+
1
]
//nếu chúng không đúng thứ tự