Câu hỏi:

27/11/2023 113

Khi sử dụng dịch vụ tìm kiếm phòng nghỉ của một số trang cung cấp dịch vụ đặt phòng trực tuyến (Agoda/Booking,...). Các hệ thống đó thường cho phép sắp xếp theo giá tăng dần hoặc giá giảm dần để người dùng tiện lựa chọn. Để thực hiện theo yêu cầu của người dùng, chương trình có thể tiến hành theo một trong các cách sau:

Cách 1: Nếu chọn “tăng dần” thì thực hiện đoạn chương trình sắp xếp tăng dần; nếu chọn “giảm dần” thì thực hiện chương trình sắp xếp giảm dần.

Cách 2: Sử dụng kết hợp câu lệnh IF trước khi thực hiện so sánh “lớn hơn" hay “nhỏ hơn” trong vòng lặp sắp xếp.

Cách 3: Nếu chọn sắp xếp “giảm dần" thì lấy toàn bộ các phần tử của dây nhân với −1, sau đó vẫn áp dụng thuật toán sắp xếp tăng dần.

Em hãy cho biết ưu, nhược điểm của các cách trên.

Sách mới 2k7: Tổng ôn Toán, Lí, Hóa, Văn, Sử, Địa…. kỳ thi tốt nghiệp THPT Quốc gia 2025, đánh giá năng lực (chỉ từ 110k).

Tổng ôn toán Tổng ôn sử Các môn khác

Quảng cáo

Trả lời:

verified
Giải bởi Vietjack

Một số ưu điểm/nhược điểm của ba cách sắp xếp như sau:

Cách 1: Nếu khách chọn “tăng dần” thì thực hiện đoạn chương trình sắp xếp tăng dần; nếu chọn “giảm dần” thì thực hiện chương trình sắp xếp giảm dần. Ưu điểm của phương án này là không làm gia tăng số lượng các phép toán cần thực hiện, tuy nhiên người dùng phải viết riêng hai chương trình, một cho lựa chọn “tăng dần”, một cho lựa chọn “giảm dần”.

Cách 2: Sử dụng kết hợp câu lệnh IF trước khi thực hiện so sánh “lớn hơn” hay “nhỏ hơn” trong vòng lặp sắp xếp.

Ưu điểm của phương án này là không cần phải viết riêng hai chương trình cho hai lựa chọn sắp xếp. Tuy nhiên, phương pháp này chúng ta cần phải thực hiện khá nhiều lệnh kiểm tra điều kiện IF trước khi thực hiện lệnh so sánh “lớn hơn” hay “nhỏ hơn”.

Cách 3: Nếu khách hàng lựa chọn sắp xếp “giảm dần” thì lấy toàn bộ các phần tử của dãy nhân với -1, sau đó vẫn áp dụng thuật toán sắp xếp tăng dần. Ưu điểm của phương án này là không phải thay đổi chương trình sắp xếp, tuy nhiên sẽ làm gia tăng số lượng phép toán do phải nhân toàn bộ dữ liệu với -1. Ngoài 3 cách trên, chúng ta còn có thể sử dụng một cách khác là vẫn sắp xếp dữ liệu theo thứ tự tăng dần như bình thường. Nếu người dùng chọn “tăng dần” thì khi hiển thị dữ liệu ra theo thứ tự từ đầu dãy đến cuối dãy, nếu người dùng chọn “giảm dần” thì hiển thị dữ liệu theo thứ tự từ cuối dãy đến đầu dãy.

CÂU HỎI HOT CÙNG CHỦ ĐỀ

Câu 1:

Trong một số ứng dụng, chúng ta phải sắp xếp dữ liệu ngay khi chúng được thêm vào một dãy số. Ví dụ, giả sử đã có một danh sách dữ liệu đã sắp xếp và thường xuyên phải bổ sung thêm các dữ liệu mới vào danh sách. Theo em, thuật toán sắp xếp nào là phù hợp nhất với ứng dụng ở trên?

A. Sắp xếp chọn.

B. Sắp xếp chèn.

C. Sắp xếp nổi bọt.

D. Các thuật toán ở phương án A, B, C đều không phù hợp.

Xem đáp án » 13/07/2024 1,066

Câu 2:

Mô tả “Ở mỗi bước lặp, thuật toán tìm kiếm phần tử lớn nhất/ nhỏ nhất trong dãy để đưa về đúng vị trí của nó” là đúng nhất với thuật toán sắp xếp nào sau đây?

A. Thuật toán sắp xếp chèn.

B. Thuật toán sắp xếp chọn.

C. Thuật toán sắp xếp nổi bọt.

D. Các thuật toán ở phương án A, B, C đều không phù hợp.

Xem đáp án » 27/11/2023 1,022

Câu 3:

Thứ tự các phần tử trong dãy số sau ba vòng lặp liên tiếp của một thuật toán sắp xếp được mô tả như sau:

1, 4, 10, 9, 3, 7, 12, 20

1, 3, 10, 9, 4, 7, 12, 20

1, 3, 4, 9, 10, 7, 12, 20

Thuật toán sắp xếp được sử dụng là:

A. Thuật toán sắp xếp chọn.

B. Thuật toán sắp xếp chèn.

C. Thuật toán sắp xếp nổi bọt.

Xem đáp án » 11/07/2024 911

Câu 4:

Áp dụng thuật toán sắp xếp chọn cho dãy số sau:

A [4, 6, 1, 3, 10, 7]

Thứ tự các phần tử trong dãy như thế nào sau vòng lặp đầu tiên?

A. 3, 1, 4, 6, 10, 7.

C. 1, 3, 4, 6, 7, 10.

B. 1, 4, 6, 3, 10, 7.

D. 1, 6, 4, 3, 10, 7.

Xem đáp án » 27/11/2023 585

Câu 5:

Viết chương trình cho phép người dùng nhập các số nguyên từ bàn phím, sắp xếp các số đã được nhập theo thứ tự tăng dần và in ra màn hình dãy số đã được sắp xếp, nhập vào từ khoá 'end' để kết thúc chương trình. Yêu cầu ngay khi nhập xong dữ liệu thì dãy số cũng sắp xếp xong (chúng ta có thể thực hiện bằng cách mỗi khi nhập một phần tử mới, sắp xếp vào đúng vị trí của nó trong dãy số).

Xem đáp án » 13/07/2024 541

Câu 6:

Mô tả “Ở mỗi bước thuật toán lấy một phần tử ở phần chưa được sắp xếp và đưa vào đúng vị trí của nó trong phần dãy số đã được duyệt” là đúng nhất với thuật toán sắp xếp nào sau đây?

A. Thuật toán sắp xếp chèn. B. Thuật toán sắp xếp chọn.

C. Thuật toán sắp xếp nổi bọt.

D. Các thuật toán ở phương án A, B, C đều không phù hợp.

Xem đáp án » 11/07/2024 398

Câu 7:

Thứ tự các phần tử trong dãy số sau ba vòng lặp liên tiếp của thuật toán sắp xếp được mô tả như sau:

5, 7, 4, 6, 9, 20, 8

4, 5, 7, 6, 9, 20, 8

4, 5, 6, 7, 9, 20, 8

Thuật toán sắp xếp được sử dụng là:

A. Thuật toán sắp xếp chọn.

C. Thuật toán sắp xếp nổi bọt.

B. Thuật toán sắp xếp chèn.

Xem đáp án » 13/07/2024 365

Bình luận


Bình luận
Đăng ký gói thi VIP

VIP +3 - Luyện thi tất cả các đề có trên Website trong 3 tháng

  • Được thi tất cả các đề của các lớp có trên Khoahoc.vietjack.com
  • Ngân hàng câu hỏi trắc nghiệm theo các mức độ Nhận biết, Thông hiểu, Vận dụng, Vận dụng cao.
  • Luyện chuyên sâu, rèn tốc độ với trọn bộ đề thi thử, đề minh họa, chính thức các năm.
  • Hỏi bài tập với đội ngũ chuyên môn cao của chúng tôi.

Đặt mua

VIP +6 - Luyện thi tất cả các đề có trên Website trong 6 tháng

  • Được thi tất cả các đề của các lớp có trên Khoahoc.vietjack.com
  • Ngân hàng câu hỏi trắc nghiệm theo các mức độ Nhận biết, Thông hiểu, Vận dụng, Vận dụng cao.
  • Luyện chuyên sâu, rèn tốc độ với trọn bộ đề thi thử, đề minh họa, chính thức các năm.
  • Hỏi bài tập với đội ngũ chuyên môn cao của chúng tôi.

Đặt mua

VIP +12 - Luyện thi tất cả các đề có trên Website trong 12 tháng

  • Siêu tiết kiệm - Được thi tất cả các đề của các lớp có trên Khoahoc.vietjack.com
  • Ngân hàng câu hỏi trắc nghiệm theo các mức độ Nhận biết, Thông hiểu, Vận dụng, Vận dụng cao.
  • Luyện chuyên sâu, rèn tốc độ với trọn bộ đề thi thử, đề minh họa, chính thức các năm.
  • Hỏi bài tập với đội ngũ chuyên môn cao của chúng tôi.

Đặt mua

Vietjack official store