54 Học Python – Tìm số nguyên nhỏ thứ 3 trong mảng mới nhất
DANH SÁCH TÓM TẮT:
Bài 54: Tìm số nguyên nhỏ thứ 3 trong mảng bằng Python
Giới Thiệu
Trong bài viết này, chúng ta sẽ viết chương trình Python để tìm số nguyên nhỏ thứ 3 trong một mảng số nguyên.
Khuyến mãi lớn thêm danh sách 10 bài tập python rèn luyện kỹ năng và nâng cao tay nghề:
- Bài 51 : Tính trung bình các số nguyên tố trong mảng bằng Python
- Bài 52: Tìm số âm lớn nhất trong mảng bằng Python
- Bài 53: Tìm số nguyên lớn nhì trong mảng bằng Python
- Bài 54: Tìm số nguyên nhỏ thứ 3 trong mảng bằng Python
- Bài 55: Đếm số lượng số nguyên khác nhau trong mảng bằng Python
- Bài 56: Đếm số lần xuất hiện của từng số trong mảng bằng Python
- Bài 57: Tìm số nguyên xuất hiện nhiều lần nhất trong mảng bằng Python
- Bài 58 Tính trung bình cộng các số chính phương trong mảng bằng Python
- Bài 59: In ra câu “Chao HoTen” bằng Python
- Bài 60: Viết xâu theo thứ tự ngược lại bằng Python
Cách Thực Hiện
- Duyệt qua tất cả các phần tử trong mảng.
- Xác định số nhỏ nhất, số nhỏ nhì và số nhỏ thứ ba.
- Trả về số nhỏ thứ ba.
Chương Trình Python
Cách 1: Sử dụng danh sách và hàm sorted()
# Hàm tìm số nhỏ thứ 3 trong mảng def tim_so_nho_thu_ba(mang): if len(mang) < 3: return None # Không đủ số lượng phần tử mang_khong_trung = sorted(set(mang)) # Sắp xếp và loại bỏ số trùng lặp return mang_khong_trung[2] if len(mang_khong_trung) >= 3 else None # Nhập số lượng phần tử của mảng n = int(input("Nhập số phần tử của mảng: ")) mang = [int(input(f"Nhập phần tử thứ {i+1}: ")) for i in range(n)] # Tìm số nhỏ thứ 3 so_nho_thu_ba = tim_so_nho_thu_ba(mang) print("Số nguyên nhỏ thứ 3 trong mảng:", so_nho_thu_ba)
Cách 2: Tối ưu hóa bằng vòng lặp duy nhất
# Hàm tìm số nhỏ thứ 3 tối ưu def tim_so_nho_thu_ba_toi_uu(mang): if len(mang) < 3: return None # Không đủ số lượng phần tử so_nho_nhat = so_nho_nhi = so_nho_thu_ba = float('inf') for so in mang: if so < so_nho_nhat: so_nho_thu_ba, so_nho_nhi, so_nho_nhat = so_nho_nhi, so_nho_nhat, so elif so_nho_nhat < so < so_nho_nhi: so_nho_thu_ba, so_nho_nhi = so_nho_nhi, so elif so_nho_nhi < so < so_nho_thu_ba: so_nho_thu_ba = so return so_nho_thu_ba if so_nho_thu_ba != float('inf') else None # Nhập số lượng phần tử của mảng n = int(input("Nhập số phần tử của mảng: ")) mang = [int(input(f"Nhập phần tử thứ {i+1}: ")) for i in range(n)] # Tìm số nhỏ thứ 3 so_nho_thu_ba = tim_so_nho_thu_ba_toi_uu(mang) print("Số nguyên nhỏ thứ 3 trong mảng:", so_nho_thu_ba)
So Sánh Hai Cách
Phương pháp | Độ phức tạp | Ưu điểm | Nhược điểm |
Dùng sorted() + set() | O(n log n) | Code ngắn gọn, dễ hiểu | Hiệu suất thấp hơn khi mảng lớn |
Vòng lặp duy nhất | O(n) | Tối ưu hơn về hiệu suất và bộ nhớ | Cần nhiều dòng code hơn |
Ví Dụ Chạy Chương Trình
Nhập số phần tử của mảng: 6
Nhập phần tử thứ 1: 10
Nhập phần tử thứ 2: 20
Nhập phần tử thứ 3: 5
Nhập phần tử thứ 4: 8
Nhập phần tử thứ 5: 12
Nhập phần tử thứ 6: 15
Số nguyên nhỏ thứ 3 trong mảng: 10
Kết Luận
Bài viết đã hướng dẫn cách tìm số nguyên nhỏ thứ 3 trong mảng bằng hai phương pháp:
- Cách cơ bản: Dùng sorted() và set(), dễ hiểu nhưng có độ phức tạp cao hơn.
- Cách tối ưu: Dùng vòng lặp duy nhất để tìm trực tiếp, giúp tiết kiệm bộ nhớ và tăng hiệu suất.
Hy vọng bài viết hữu ích cho bạn!
Nếu bạn thấy hay ! xin bạn 1 phút ! vui lòng đánh giá 5 sao cho trang website của chúng tôi ! để có động lực làm thêm nhiều bài hay nữa ! cảm ơn quý khách nhé !
Khóa học Python online từ cơ bản đến nâng cao