Linear search and bubble sort · Tìm kiếm tuyến tính và sắp xếp nổi bọt
This page needs a recent browser (with SharedArrayBuffer support). Please update Chrome, Edge, Firefox or Safari to the latest version. · Trang này cần trình duyệt gần đây (hỗ trợ SharedArrayBuffer). Vui lòng cập nhật Chrome, Edge, Firefox hoặc Safari lên phiên bản mới nhất.
English
Find one mark, then order the list
- Syllabus topic 10.2 asks for two algorithms on an array: a linear search and a bubble sort.
- A linear search looks at every cell. Remember the index when the value matches. If it never matches, the index stays 0.
- Searching does not move the values. Sorting does.
Tiếng Việt
Tìm một dấu chấm, sau đó sắp xếp danh sách
- Chương trình thi 10.2 yêu cầu hai thuật toán trên mảng: tìm kiếm tuyến tính và sắp xếp nổi bọt.
- Tìm kiếm tuyến tính xem xét từng ô. Nhớ chỉ số khi giá trị khớp. Nếu không bao giờ khớp, chỉ số vẫn giữ nguyên 0.
- Tìm kiếm không di chuyển các giá trị. Sắp xếp thì có.
DECLARE A : ARRAY[1:4] OF INTEGER
DECLARE I, Pos : INTEGER
A[1] ← 4
A[2] ← 9
A[3] ← 1
A[4] ← 7
Pos ← 0
FOR I ← 1 TO 4
IF A[I] = 9 THEN
Pos ← I
ENDIF
NEXT I
OUTPUT Pos
English
Bubble the largest to the end
- Compare each pair of neighbours. When the left one is larger, swap them through a temporary variable.
- One comparison is not the whole sort. Repeat the pass until every pair has been handled.
- For four values, an outer loop of three passes and an inner loop across the pairs is enough.
Tiếng Việt
Nổi giá trị lớn nhất ra cuối cùng
- So sánh từng cặp hàng xóm. Khi bên trái lớn hơn, hoán đổi chúng thông qua biến tạm thời.
- Một lần so sánh không phải là toàn bộ quá trình sắp xếp. Lặp lại lượt đi cho đến khi mọi cặp đã được xử lý.
- Đối với bốn giá trị, một vòng lặp ngoài gồm ba lượt đi và vòng lặp trong quét qua các cặp là đủ.
DECLARE Score : ARRAY[1:4] OF INTEGER
DECLARE I, J, Temp : INTEGER
Score[1] ← 4
Score[2] ← 1
Score[3] ← 3
Score[4] ← 2
FOR I ← 1 TO 3
FOR J ← 1 TO 3
IF Score[J] > Score[J + 1] THEN
Temp ← Score[J]
Score[J] ← Score[J + 1]
Score[J + 1] ← Temp
ENDIF
NEXT J
NEXT I
OUTPUT Score[1]
OUTPUT Score[2]
OUTPUT Score[3]
OUTPUT Score[4]
English
Common mistakes
- A swap needs three assignments. Copying the right cell over the left one loses the left value.
THENstays on theIFline in this guide. The innerNEXTnamesJ, the outer namesI.
Tiếng Việt
Lỗi thường gặp
- Hoán đổi cần ba phép gán.Sao chép ô bên phải lên ô bên trái sẽ làm mất giá trị của ô bên trái.
THENvẫn nằm trên dòngIFtrong hướng dẫn này. Vòng lặp trongNEXTđặt tênJ, vòng lặp ngoài đặt tênI.
English
Now you try
- First report where
9sits. Then sort four values into ascending order, one per line.
Tiếng Việt
Bây giờ bạn thử
- Đầu tiên báo cáo vị trí của
9. Sau đó sắp xếp bốn giá trị theo thứ tự tăng dần, mỗi giá trị trên một dòng riêng.
The array A holds 4, 9, 1, 7. Set Pos to the index of 9 (it is 2) and output Pos. If you never find it, Pos stays 0. · Mảng A chứa 4, 9, 1, 7. Gán Pos bằng chỉ mục của 9 (nó là 2) và xuất Pos. Nếu bạn không bao giờ tìm thấy nó, Pos vẫn giữ nguyên 0.
Click Run to see the output here. · Nhấn Chạy để xem kết quả ở đây.
The array Score holds 4, 1, 3, 2. Bubble-sort it into ascending order and output the four values, one per line. · Mảng Score chứa 4, 1, 3, 2. Sắp xếp nổi bọt thành thứ tự tăng dần và xuất bốn giá trị, mỗi giá trị một dòng.
Click Run to see the output here. · Nhấn Chạy để xem kết quả ở đây.