Tổng hợp các câu hỏi Trắc nghiệm Tin 7 Thuật toán sắp xếp (có đáp án) . Bài toán sắp xếp là bài toán giải quyết việc tổ chức dữ liệu theo một trật tự nhất định, thường là tăng dần hoặc giảm dần.
Bài toán sắp xếp chắc chắn không còn xa lạ gì với mỗi chúng ta, nó là một trong những bài toán được bắt gặp nhiều nhất trong thực tế. Ví dụ như sắp xếp danh sách lớp học, sắp xếp quyển sách, sắp xếp tiền… Vậy thì bài toán sắp xếp là gì?
Bài toán sắp xếp là chúng ta sẽ sắp xếp lại các phần tử của một danh sách theo chiều tăng hoặc giảm dần theo một tiêu chí nào đó của phần tử trong danh sách.
Ví dụ như bạn sắp xếp danh sách lớp học theo điểm trung bình từ cao đến thấp, sắp những quyển sách theo kích cỡ từ nhỏ đến lớn, sắp xếp những tờ tiền theo mệnh giá từ thấp đến cao…
Mục đích của việc sắp xếp chính là giúp ta có cái nhìn tổng quan hơn về những dữ liệu mà ta có, dễ dàng tìm kiếm những phần tử đứng nhất về một tiêu chí nào đó như mình đã nói trong Thuật toán tìm kiếm trong C++, hầu như mọi bài toán đều quy về bài toán tìm kiếm. Ví dụ:
Bạn có một danh sách lớp học chưa được sắp xếp, bạn muốn biết được là mức độ đề thi có khó đối với học sinh hay không, top 3 học sinh có điểm trung bình cao nhất. Vậy thì sau khi bạn thực hiện việc sắp xếp giảm theo điểm trung bình, bạn sẽ dễ dàng đánh giá được mức độ của đề đối với học sinh là dễ hay khó thông qua việc nhìn vào đầu và cuối danh sách, đầu danh sách điểm không cao lắm và cuối danh sách điểm thấp thì chắc chắn đề này khó đối với học sinh và ngược lại.
Trong lập trình, sắp xếp không chỉ đơn giản là để tìm một hoặc nhiều phần tử đứng đầu về một tiêu chí nào đó hay để có cái nhìn tổng quan về dữ liệu, sắp xếp còn làm cơ sở cho các giải thuật nâng cao với hiệu suất cao hơn.
Ví dụ như khi thực hiện tìm kiếm, thuật toán tìm kiếm nhị phân có độ phức tạp thời gian là O(log(n)) và ổn định, nhưng thuật toán này chỉ áp dụng được với dãy đã được sắp xếp. Vậy khi này, bạn có thể thực hiện sắp xếp trước sau đó áp dụng thuật toán tìm kiếm nhị phân.
Bài toán sắp xếp chỉ đơn giản có vậy, bây giờ mình sẽ giới thiệu đến các bạn một số giải thuật tìm kiếm phổ biến nhất mà lập trình viên nào cũng nên biết. Hãy cùng bắt đầu thôi!
Lưu ý trước khi đọc bài: bạn cần có kỹ năng lập trình C++ cơ bản, hiểu về độ phức tạp của thuật toán. Trong bài viết có sử dụng từ thuật toán sắp xếp ổn định, thuật toán sắp xếp ổn định nghĩa là thứ tự của các phần tử có cùng giá trị sẽ không thay đổi so với ban đầu. Ví dụ như 1 5 3 3 4, sau khi sắp xếp cũng là 1 3 3 4 5.
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: Sau vòng lặp thứ nhất của thuật toán sắp xếp chọn, phương án nào đúng?
A. Phần tử có giá trị nhỏ nhất trong dãy được tìm thấy và đổi chỗ cho phần tử đứng đầu dãy.
B. Phần tử có giá trị lớn nhất trong dãy được tìm thấy và đổi chỗ cho phần tử đứng đầu dãy.
C. Các phần tử liền kề được hoán đổi.
D. Phần tử có giá trị nhỏ nhất sẽ đổi vị trí cho phần tử cuối dãy.
Câu 3: 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 4: Tìm phần tử nhỏ nhất trong dãy và đổi chỗ phần tử này với phần tử đầu tiên của dãy chưa được sắp xếp là ý tưởng của thuật toán nào?
A. Nỗi bọt.
B. Chọn.
Câu 5: 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 6: Hoán đổi vị trí hai phần tử liên tiếp khi chúng không đúng thứ tự là cách sắp xếp của thuật toán nào?
A. Nỗi bọt.
B. Chọn.
Câu 7: Các nhiệm vụ để thực hiện việc sắp xếp gồm:
A. So sánh.
B. Đổi chỗ.
C. So sánh và đổi chỗ.
D. Đổi chỗ và xoá.
Câu 8: 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 9: 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 10: 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 11: 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 12: Cho dãy số sau: 15, 20, 10, 18.
Bạn Minh sử dụng thuật toán sắp xếp nổi bọt để sắp xếp dãy số tăng dần. Mỗi vòng lặp sẽ duyệt từ phần tử cuối đến phần tử đầu tiên. Em hãy chọn phương án mô tả đúng dãy số sắp xếp sau mỗi vòng lặp.
A. 15, 20, 10, 18 – 10, 15, 18, 20 – 10, 15, 18, 20
B. 15, 20, 10, 18 – 10, 20, 15, 18 – 10, 15, 20, 18 – 10, 15, 18, 20.
C. 15,20, 10, 18 – 15, 10, 20, 18 – 10, 15, 18, 20.
D. 15, 20, 10, 18 – 10, 15, 20, 18 – 10, 15, 18, 20.
Câu 13: 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 14: Nếu sử dụng thuật toán sắp xếp chọn để sắp xếp dãy số 8, 22, 7, 19, 5 theo thứ tự tăng dần thì số lần thực hiện thao tác hoán đổi giá trị trong vòng lặp thứ nhất là:
A.2.
B. 3.
C. 4.
D. 5.
Câu 15: 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 16: Dùng thuật toán sắp xếp nổi bọt để sắp xếp một dãy số tăng dần. Mỗi vòng lặp sẽ duyệt các phần tử từ cuối danh sách đến đầu danh sách. Kết thúc vòng lặp thứ nhát, phần tử đầu tiên sẽ có giá trị:
A. Nhỏ nhất trong dãy số.
C. Không thay đổi.
B. Lớn nhất trong dãy só.
D. Bằng giá trị của phần tử liền trước.
Câu 17: 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
Bài viết khác cùng mục: