Lý thuyết Tin học 11 Bài 21 (Kết nối tri thức): Các thuật toán sắp xếp đơn giản
Tóm tắt lý thuyết Tin học lớp 11 Bài 21: Các thuật toán sắp xếp đơn giản hay, chi tiết sách Kết nối tri thức sẽ giúp học sinh nắm vững kiến thức trọng tâm, ôn luyện để học tốt Tin học 11.
Lý thuyết Tin học 11 Bài 21: Các thuật toán sắp xếp đơn giản
A. Lý thuyết Các thuật toán sắp xếp đơn giản
1. Thuật toán sắp xếp chèn
- Thuật toán sắp xếp chèn: chỉ số i chạy từ 1 đến n-1. Mỗi vòng "chèn" phần tử A[i] vào vị trí đúng của dãy con đã sắp xếp A[0] đến A[i-1].
- "Chèn" A[i] vào vị trí đúng trong dãy con A[0] đến A[i-1] bằng cách "nhấc" A[i] lên, chuyển các phần tử bên trái A[i] lớn hơn sang phải, và đặt A[i] vào vị trí đúng.
- Sau n-1 bước lặp, dãy được sắp xếp xong.
- Thuật toán sắp xếp chèn có thể mô tả bằng hàm insertionSort(A) như sau:

- Thuật toán sắp xếp chọn: chỉ số i chạy từ 0 đến n-2.
- Tại mỗi bước lặp, tìm phần tử nhỏ nhất trong dãy A[i], A[i+1], A[n-1] và đổi chỗ phần tử nhỏ nhất này với A[i].
- Mô tả thuật toán chọn như sau:

- Thuật toán sắp xếp chọn có thể mô tả bằng hàm insertionSort(A) như sau:

- Thuật toán sắp xếp nổi bọt lấy ý tưởng từ hiện tượng "nổi bọt" của không khí dưới nước.
- Ý tưởng của thuật toán nổi bọt: liên tục đổi chỗ hai phần tử cạnh nhau nếu chúng chưa được sắp thứ tự đúng.

- Chỉ số j chạy từ 0 đến n-2 và kiểm tra hai phần tử liền nhau A[j], A[j+1], nếu chưa sắp thứ tự đúng thì đổi chỗ.
- Sau mỗi vòng lặp, phần tử lớn nhất được chuyển về cuối dãy.
- Không cần đủ n-1 bước lặp, với chỉ số i, vòng lặp ở dòng 2 chỉ cần n-1-i bước lặp.
- Thuật toán sắp xếp chọn có thể mô tả bằng hàm BubbleSort(A) như sau:

Sơ đồ tư duy Các thuật toán sắp xếp đơn giản

B. Bài tập Các thuật toán sắp xếp đơn giản
Câu 1: Thuật toán sắp xếp nổi bọt sắp xếp danh sách bằng cách nào?
A. Thay thế.
B. Thay đổi.
C. Hoán đổi.
D. Cả A, B và C.
Câu 2: Thuật toán sắp xếp nổi bọt sắp xếp danh sách bằng cách hoán đổi các phần tử liền kề bao nhiêu lần?
A. Một lần.
B. Hai lần.
C. Mười lần.
D. Nhiều lần.
Câu 3: Trong thuật toán sắp xếp nổi bọt, ta thực hiện hoán đổi giá trị các phần tử liền kề khi nào?
A. Giá trị của chúng tăng.
B. Giá trị của chúng giảm.
C. Giá trị của chúng không đúng thứ tự.
D. Giá trị của chúng không bằng nhau.
Câu 4: Trong thuật toán sắp xếp nổi bọt thì dấu hiệu để biết dãy chưa sắp xếp xong là gì?
A. Vẫn còn cặp phần tử liền kế không đúng thứ tự mong muốn.
B. Dãy chưa được sắp xếp tăng dần.
C. Dãy chưa được sắp xếp giảm dần.
D. Cả A, B và C.
Câu 5: Cho dãy số: 15, 1, 31, 9, 78, 42. Nếu sử dụng thuật toán sắp xếp nổi bọt để sắp xếp dãy trên tăng dần thì sau bao nhiêu lượt đổi chỗ thì thuật toán kết thúc?
A. 2
B. 3
C. 4
D. 5
Câu 6: Trong thuật toán sắp xếp nổi bọt kết thúc khi nào?
A. Khi các phần tử đã nằm đúng thứ tự mong muốn.
B. Không còn bất kì cặp liền kề trái thứ tự mong muốn.
C. Không còn xảy ra đổi chỗ lần nào nữa.
D. Cả A, B và C.
Câu 7: Cho dãy số: 6, 4, 5, 3. Nếu sử dụng thuật toán sắp xếp nổi bọt để sắp xếp dãy tăng dần thì sau bao nhiêu vòng lặp thì thuật toán kết thúc?
A. 2
B. 3
C. 4
D. 5
Câu 8: Thuật toán sắp xếp nổi chọn xét từng vị trí phần tử từ:
A. Đầu đến cuối
B. Cuối đến đầu
C. Giữa đến đầu
D. Giữa đến cuối
Câu 9: Tại sao chúng ta chia bài toán thành những bài toán nhỏ hơn?
A. Để thay đổi đầu vào của bài toán.
B. Để thay đổi yêu cầu đầu ra của bài toán.
C. Để bài toán dễ giải quyết hơn.
D. Để bài toán khó giải quyết hơn.
Câu 10: Mô tả thuật toán sắp xếp chọn bằng ngôn ngữ tự nhiên gồm có mấy bước?
A. 2
B. 3
C. 4
D. 5
Trắc nghiệm Tin học 11 Bài 21: Các thuật toán sắp xếp đơn giản
Câu 1: Ý tưởng chính của thuật toán sắp xếp chèn là gì?
A. Tìm phần tử nhỏ nhất và chuyển nó vào vị trí đầu tiên.
B. So sánh từng cặp phần tử liền kề và hoán đổi nếu chúng không đúng thứ tự.
C. Chèn từng phần tử vào đúng vị trí trong một mảng con đã sắp xếp.
D. Chia mảng thành hai phần và sắp xếp từng phần đệ quy.
Đáp án: C
Giải thích: Thuật toán sắp xếp chèn hoạt động bằng cách lấy các phần tử từ phần chưa sắp xếp và chèn chúng vào đúng vị trí trong một mảng con đã sắp xếp, mảng con này sẽ lớn dần sau mỗi lần lặp.
Câu 2: Trong thuật toán sắp xếp chèn, có bao nhiêu phép so sánh trong trường hợp tốt nhất (khi mảng đã được sắp xếp)?
A. 0
B. n−1n-1n−1
C. n(n−1)2\frac{n(n-1)}{2}2n(n−1)
D. n2n^2n2
Đáp án: B
Giải thích: Trong trường hợp tốt nhất, mỗi phần tử chỉ cần so sánh một lần với phần tử đứng trước nó, do đó số phép so sánh là n−1n-1n−1.
Câu 3: Độ phức tạp thời gian trong trường hợp xấu nhất của thuật toán sắp xếp chèn là gì?
A. O(n)
B. O(n \log n)
C. O(n^2)
D. O(1
Đáp án: C
Giải thích: Trong trường hợp xấu nhất (khi mảng được sắp xếp ngược), mỗi phần tử cần được so sánh với tất cả các phần tử trước nó, dẫn đến số lượng phép so sánh là bậc hai (O(n^2)).
Câu 4: Trong thuật toán sắp xếp chọn, điều gì xảy ra trong mỗi lần lặp?
A. Phần tử lớn nhất được chuyển về cuối mảng.
B. Phần tử nhỏ nhất được đưa vào đúng vị trí.
C. Mỗi phần tử được chèn vào đúng vị trí của nó.
D. Các phần tử liền kề được hoán đổi để sắp xếp.
Đáp án: B
Giải thích: Trong mỗi lần lặp của thuật toán sắp xếp chọn, thuật toán chọn phần tử nhỏ nhất trong phần chưa sắp xếp và đặt nó vào đúng vị trí của nó.
Câu 5: Độ phức tạp thời gian trong trường hợp tốt nhất của thuật toán sắp xếp chọn là gì?
A. O(n)
B. O(n^2)
C. O(n \log n)
D. O(1)
Đáp án: B
Giải thích: Thuật toán sắp xếp chọn luôn thực hiện O(n^2) phép so sánh, bất kể dữ liệu ban đầu được sắp xếp như thế nào, do đó độ phức tạp thời gian trong trường hợp tốt nhất là O(n^2).
Câu 6: Thuật toán nào sau đây không sử dụng so sánh giữa các phần tử?
A. Sắp xếp chèn
B. Sắp xếp chọn
C. Sắp xếp đếm
D. Sắp xếp nổi bọt
Đáp án: C
Giải thích: Sắp xếp đếm là một thuật toán sắp xếp không dựa trên việc so sánh các phần tử, mà dựa trên việc đếm số lần xuất hiện của mỗi phần tử trong một phạm vi.
Câu 7: Mục đích của vòng lặp bên trong trong thuật toán sắp xếp nổi bọt là gì?
A. Tìm phần tử lớn nhất và đưa nó về đúng vị trí.
B. Tìm phần tử nhỏ nhất và đưa nó về đúng vị trí.
C. So sánh và hoán đổi các phần tử liền kề nếu chúng không đúng thứ tự.
D. Chia mảng thành các phần nhỏ hơn để sắp xếp.
Đáp án: C
Giải thích: Trong sắp xếp nổi bọt, vòng lặp bên trong so sánh các phần tử liền kề và hoán đổi chúng nếu chúng không đúng thứ tự, điều này làm cho phần tử lớn nhất trong phần chưa sắp xếp "nổi" lên cuối mảng
Câu 8: Trường hợp tốt nhất của thuật toán sắp xếp nổi bọt là gì?
A. Mảng được sắp xếp ngược lại.
B. Mảng đã được sắp xếp.
C. Mảng chứa tất cả các phần tử giống nhau.
D. Mảng chỉ có hai phần tử.
Đáp án: B
Giải thích: Trường hợp tốt nhất của sắp xếp nổi bọt là khi mảng đã được sắp xếp, khi đó chỉ cần một lần duyệt qua với không cần hoán đổi, dẫn đến độ phức tạp thời gian O(n).
Câu 9: Phát biểu nào sai về thuật toán sắp xếp nổi bọt?
A. Nó là thuật toán ổn định, có nghĩa là nó giữ nguyên thứ tự của các phần tử bằng nhau.
B. Nó là thuật toán tại chỗ, tức là nó sử dụng bộ nhớ phụ không đáng kể.
C. Nó luôn thực hiện số lượng so sánh giống nhau, bất kể thứ tự của đầu vào.
D. Độ phức tạp thời gian xấu nhất của nó là O(n^2).
Đáp án: C
Giải thích: Số lượng so sánh trong sắp xếp nổi bọt có thể thay đổi tùy thuộc vào mức độ sắp xếp của mảng đầu vào. Trong trường hợp tốt nhất, ít so sánh hơn so với trường hợp xấu nhất.
Câu 10: Trong thuật toán sắp xếp chèn, thuật toán xác định vị trí để chèn phần tử như thế nào trong mỗi lần lặp?
A. Bằng cách tìm phần tử ở giữa và chèn vào đó.
B. Bằng cách dịch chuyển các phần tử lớn hơn phần tử hiện tại sang bên phải.
C. Bằng cách hoán đổi các phần tử liền kề cho đến khi phần tử hiện tại ở đúng vị trí.
D. Bằng cách chia mảng ra đệ quy.
Đáp án: B
Giải thích: Thuật toán sắp xếp chèn chèn phần tử hiện tại vào đúng vị trí của nó bằng cách dịch chuyển các phần tử lớn hơn nó sang bên phải, tạo ra khoảng trống để chèn.
PHẦN II. Câu trắc nghiệm đúng sai. Thí sinh trả lời từ câu 1 đến câu 2. Trong mỗi ý a), b), c), d) ở mỗi câu, thí sinh chọn đúng hoặc sai
Câu 1: Cho dãy A = [5, 8, 1, 0, 10, 4, 3], thuật toán sắp xếp chèn sẽ hoạt động như thế nào?
a) Sắp xếp từng phần tử vào vị trí đúng trong dãy con đã sắp xếp.
b) Đổi chỗ phần tử nhỏ nhất trong dãy còn lại với phần tử đang xét.
c) Kiểm tra từng cặp phần tử liền kề và đổi chỗ nếu không đúng thứ tự.
d) So sánh từng phần tử và hoán đổi nếu chúng không đúng vị trí.
a) Đúng. Đây chính là cách hoạt động của thuật toán sắp xếp chèn. Sau mỗi vòng lặp, phần tử đang xét sẽ được chèn vào vị trí đúng trong dãy con đã sắp xếp, từ trái sang phải.
b) Sai. Đây là mô tả của thuật toán sắp xếp chọn, không phải sắp xếp chèn.
c) Sai. Đây là cách hoạt động của thuật toán sắp xếp nổi bọt, không phải sắp xếp chèn.
d) Sai. Mô tả này không phản ánh đúng thuật toán sắp xếp chèn, mà là mô tả một cách khác, giống như thuật toán sắp xếp nổi bọt.
Câu 2: Trong thuật toán sắp xếp chọn, điều gì sẽ xảy ra ở mỗi bước lặp?
a) Tìm phần tử lớn nhất trong dãy chưa sắp xếp và đổi chỗ với phần tử cuối cùng.
b) Tìm phần tử nhỏ nhất trong dãy chưa sắp xếp và đổi chỗ với phần tử đang xét.
c) So sánh từng cặp phần tử liền kề và đổi chỗ nếu cần thiết.
d) Chèn phần tử đang xét vào vị trí đúng trong dãy con đã sắp xếp.
a) Sai. Thuật toán sắp xếp chọn tìm phần tử nhỏ nhất trong dãy chưa sắp xếp, không phải phần tử lớn nhất.
b) Đúng. Đây chính là ý tưởng chính của thuật toán sắp xếp chọn, tìm phần tử nhỏ nhất trong dãy còn lại và đổi chỗ với phần tử hiện tại.
c) Sai. Đây là cách hoạt động của thuật toán sắp xếp nổi bọt, không phải sắp xếp chọn.
d) Sai. Đây là mô tả của thuật toán sắp xếp chèn, không phải sắp xếp chọn.
PHẦN III. Câu trả lời ngắn. Thí sinh trả lời từ câu 1 đến câu 3
Câu 1: Nếu dãy ban đầu đã được sắp xếp, thuật toán sắp xếp chèn sẽ thực hiện như thế nào?
Đáp án: Nếu dãy đã được sắp xếp, thuật toán sắp xếp chèn vẫn thực hiện tất cả các bước lặp, nhưng không có sự hoán đổi nào xảy ra.
Giải thích: Thuật toán sắp xếp chèn kiểm tra mỗi phần tử từ trái sang phải và chèn nó vào vị trí đúng trong dãy con đã được sắp xếp. Nếu dãy đã sắp xếp, tất cả các phần tử đều ở vị trí đúng của nó, do đó không cần hoán đổi, nhưng các bước kiểm tra vẫn được thực hiện.
Câu 2: Tại mỗi bước của thuật toán sắp xếp chọn, phần tử nào sẽ được đổi chỗ?
Đáp án: Phần tử nhỏ nhất trong đoạn chưa được sắp xếp sẽ được đổi chỗ với phần tử đầu tiên của đoạn đó.
Giải thích: Thuật toán sắp xếp chọn tìm phần tử nhỏ nhất trong đoạn chưa sắp xếp và hoán đổi nó với phần tử đầu tiên của đoạn đó. Sau mỗi bước, phần tử nhỏ nhất sẽ ở đúng vị trí và đoạn chưa sắp xếp sẽ giảm đi một phần tử.
Câu 3: Trong thuật toán sắp xếp nổi bọt, sau mỗi vòng lặp, điều gì xảy ra với các phần tử?
Đáp án: Sau mỗi vòng lặp, phần tử lớn nhất trong đoạn chưa sắp xếp sẽ được đưa về cuối dãy.
Giải thích: Thuật toán sắp xếp nổi bọt hoạt động bằng cách so sánh từng cặp phần tử liền kề và hoán đổi chúng nếu cần thiết. Sau mỗi vòng lặp, phần tử lớn nhất "nổi" lên và được đặt đúng vị trí ở cuối dãy. Quá trình này tiếp tục cho đến khi dãy được sắp xếp hoàn toàn.
Xem thêm các bài lý thuyết Tin học 11 sách Kết nối tri thức hay, chi tiết tại:
Lý thuyết Bài 23: Kiểm thử và đánh giá chương trình
Lý thuyết Bài 24: Đánh giá độ phức tạp thời gian thuật toán
Lý thuyết Bài 26: Phương pháp làm mịn dần trong thiết kế chương trình
Lý thuyết Bài 28: Thiết kế chương trình theo Mô đun
Lý thuyết Bài 30: Thiết lập thư viện cho chương trình
Xem thêm tài liệu Tin học lớp 11:
Xem thêm các chương trình khác:
- Soạn văn lớp 11 Kết nối tri thức - hay nhất
- Văn mẫu lớp 11 - Kết nối tri thức
- Tóm tắt tác phẩm Ngữ văn 11 – Kết nối tri thức
- Tác giả tác phẩm Ngữ văn 11 - Kết nối tri thức
- Giải SBT Ngữ văn 11 – Kết nối tri thức
- Bố cục tác phẩm Ngữ văn 11 – Kết nối tri thức
- Giải Chuyên đề học tập Ngữ văn 11 – Kết nối tri thức
- Nội dung chính tác phẩm Ngữ văn lớp 11 – Kết nối tri thức
- Soạn văn 11 Kết nối tri thức (ngắn nhất)
- 100+ đề Đọc hiểu Ngữ Văn 11 (có đáp án)
- Giải sgk Toán 11 – Kết nối tri thức
- Giải Chuyên đề học tập Toán 11 – Kết nối tri thức
- Lý thuyết Toán 11 - Kết nối tri thức
- Giải sbt Toán 11 – Kết nối tri thức
- Bài tập Tiếng Anh 11 Global success theo Unit có đáp án
- Giải sgk Tiếng Anh 11 – Global success
- Giải sbt Tiếng Anh 11 - Global Success
- Trọn bộ Từ vựng Tiếng Anh 11 Global success đầy đủ nhất
- Ngữ pháp Tiếng Anh 11 Global success
- Giải sgk Vật lí 11 – Kết nối tri thức
- Lý thuyết Vật lí 11 – Kết nối tri thức
- Giải sbt Vật lí 11 – Kết nối tri thức
- Giải Chuyên đề học tập Vật lí 11 – Kết nối tri thức
- Chuyên đề dạy thêm Vật lí 11 cả 3 sách (2026 có đáp án)
- Giải sgk Hóa học 11 – Kết nối tri thức
- Giải Chuyên đề học tập Hóa học 11 – Kết nối tri thức
- Lý thuyết Hóa 11 - Kết nối tri thức
- Giải sbt Hóa học 11 – Kết nối tri thức
- Chuyên đề dạy thêm Hóa 11 cả 3 sách (2026 có đáp án)
- Giải sgk Sinh học 11 – Kết nối tri thức
- Lý thuyết Sinh học 11 – Kết nối tri thức
- Giải Chuyên đề học tập Sinh học 11 – Kết nối tri thức
- Giải sbt Sinh học 11 – Kết nối tri thức
- Giải sgk Giáo dục Kinh tế và Pháp luật 11 – Kết nối tri thức
- Giải Chuyên đề học tập Kinh tế pháp luật 11 – Kết nối tri thức
- Lý thuyết Kinh tế pháp luật 11 – Kết nối tri thức
- Giải sbt Kinh tế pháp luật 11 – Kết nối tri thức
- Giải sgk Lịch sử 11 – Kết nối tri thức
- Giải Chuyên đề học tập Lịch sử 11 – Kết nối tri thức
- Lý thuyết Lịch sử 11 - Kết nối tri thức
- Giải sbt Lịch sử 11 – Kết nối tri thức
- Giải sgk Địa lí 11 – Kết nối tri thức
- Giải Chuyên đề học tập Địa lí 11 – Kết nối tri thức
- Lý thuyết Địa lí 11 - Kết nối tri thức
- Giải sbt Địa lí 11 – Kết nối tri thức
- Giải sgk Công nghệ 11 – Kết nối tri thức
- Lý thuyết Công nghệ 11 - Kết nối tri thức
- Giải sbt Công nghệ 11 – Kết nối tri thức
- Giải sgk Giáo dục quốc phòng an ninh 11 – Kết nối tri thức
- Lý thuyết Giáo dục quốc phòng 11 – Kết nối tri thức
- Giải sbt Giáo dục quốc phòng 11 – Kết nối tri thức
- Giải sgk Hoạt động trải nghiệm 11 – Kết nối tri thức
