btvn.vn
Tìm kiếm Đăng nhập

Duyệt tìm tổng nhỏ nhất và ba tổng cao nhất

Lưu trên thiết bị này
Chuyên đề lựa chọn CS: Kĩ thuật duyệt · Chọn bài khác

Chưa thể dừng ở kết quả có vẻ nhỏ

```python def minimum_total(names, B, C, D): if not names: return None, None best_name = names[0] best_score = B[0] + C[0] + D[0] for i in range(1, len(names)): score = B[i] + C[i] + D[i] if score < best_score: best_name, best_score = names[i], score return best_name, best_score ``` Kết quả tốt nhất khởi tạo từ hàng đầu, không dùng0 vì 0 có thể không là tổng của mẫu nào. Duyệt phần còn lại, gặp tổng nhỏ hơn thì cập nhật cả tên và tổng. Bảng mẫu trả Mẫu A,23,9; nếu rỗng thì (None,None). Khi nhiều tổng nhỏ nhất bằng nhau, mã giữ hàng gặp trước.

Sắp xếp chọn trên cả bản ghi

```python def top_three(names, B, C, D): # Sắp xếp chọn giảm dần trên bản ghi riêng, không đổi bốn dãy gốc. records = [(names[i], B[i], C[i], D[i], B[i] + C[i] + D[i]) for i in range(len(names))] for i in range(len(records) - 1): best = i for j in range(i + 1, len(records)): if records[j][4] > records[best][4]: best = j records[i], records[best] = records[best], records[i] return records[:3] ``` Mỗi bản ghi chứa tên, ba điểm và tổng. Sắp xếp chọn giảm dần theo tổng ở vị trí4 của bản ghi rồi lấy ba bản ghi đầu. Vì đổi chỗ cả bản ghi, tên không rời khỏi các điểm gốc; bốn dãy đầu vào giữ nguyên. Bảng mẫu cho thứ tự F28,2;E27,5;D27,1. Nếu có ít hơn ba hàng, chỉ trả số hàng có thật. Nếu tổng đồng hạng, bài này chưa yêu cầu quy tắc xếp giữa chúng; không kết luận mã luôn giữ thứ tự cũ của các hàng đồng hạng.

Bài luyện

Vì sao không khởi tạo tổng nhỏ nhất bằng 0?
Chọn một đáp án

Bài luyện

Ba mẫu có tổng cao nhất trong bảng là gì, theo thứ tự giảm dần?
Chọn một đáp án

Bài luyện

Khi sắp xếp bản ghi, vì sao phải đổi chỗ cả tên và các điểm?
Chọn một đáp án

Đang học