53 Học Python – Tìm số nguyên lớn nhì trong mảng mới nhất
DANH SÁCH TÓM TẮT:
Bài 53: Tìm số nguyên lớn nhì 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 lớn nhì 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ố lớn nhất.
- Tìm số lớn nhì bằng cách bỏ qua số lớn nhất và lấy số lớn nhất còn lại.
Chương Trình Python
Cách 1: Sử dụng danh sách và hàm max()
# Hàm tìm số lớn nhì trong mảng
def tim_so_lon_nhi(mang):
if len(mang) < 2:
return None # Không đủ số lượng phần tử
so_lon_nhat = max(mang)
mang_loai_bo_max = [so for so in mang if so != so_lon_nhat] # Loại bỏ số lớn nhất
return max(mang_loai_bo_max, default=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ố lớn nhì
so_lon_nhi = tim_so_lon_nhi(mang)
print(“Số nguyên lớn nhì trong mảng:”, so_lon_nhi)
Cách 2: Tối ưu hóa bằng vòng lặp duy nhất
# Hàm tìm số lớn nhì tối ưu
def tim_so_lon_nhi_toi_uu(mang):
if len(mang) < 2:
return None # Không đủ số lượng phần tử
so_lon_nhat = so_lon_nhi = float(‘-inf’)
for so in mang:
if so > so_lon_nhat:
so_lon_nhi, so_lon_nhat = so_lon_nhat, so
elif so > so_lon_nhi and so != so_lon_nhat:
so_lon_nhi = so
return so_lon_nhi if so_lon_nhi != 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ố lớn nhì
so_lon_nhi = tim_so_lon_nhi_toi_uu(mang)
print(“Số nguyên lớn nhì trong mảng:”, so_lon_nhi)
So Sánh Hai Cách
Phương pháp | Độ phức tạp | Ưu điểm | Nhược điểm |
Dùng list comprehension + max | O(n) | Dễ hiểu, code ngắn gọn | Tốn bộ nhớ nếu danh sách lớn |
Vòng lặp duy nhất | O(n) | Tối ưu hơn về bộ nhớ và hiệu suất | 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: 20
Nhập phần tử thứ 6: 15
Số nguyên lớn nhì trong mảng: 15
Kết Luận
Bài viết đã hướng dẫn cách tìm số nguyên lớn nhì trong mảng bằng hai phương pháp:
- Cách cơ bản: Dùng list comprehension và hàm max, dễ hiểu nhưng tốn bộ nhớ 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