Danh mục: 48 Học Python – Sắp xếp mảng theo thứ tự tăng dần mới nhất

48 Học Python – Sắp xếp mảng theo thứ tự tăng dần mới nhất

Bài 48: Tìm phần tử lớn nhất đầu tiên trong mảng và vị trí của phần tử đó bằng Python

Giới Thiệu

Khi làm việc với mảng số nguyên, một trong những bài toán cơ bản là tìm phần tử lớn nhất đầu tiên xuất hiện trong mảng và vị trí của nó. Điều này giúp chúng ta hiểu được cách truy xuất dữ liệu một cách tối ưu và ứng dụng trong nhiều bài toán thực tế.

Trong bài viết này, chúng ta sẽ viết hai chương trình Python: một cách đơn giản và một phiên bản tối ưu hóa để giải quyết bài toán này.

Ưu Đã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ề:

  1. Bài 41: Đếm số chẵn trong mảng bằng Python
  2. Bài 42: Tính tổng các phần tử ở vị trí chẵn trong mảng bằng Python
  3. Bài 43: Tính tổng các phần tử có giá trị chẵn trong mảng bằng Python
  4. Bài 44: Tìm số x trong mảng bằng Python
  5. Bài 45 : Đếm và in dãy số dương, số âm trong mảng bằng Python
  6. Bài 46: In ra những số chia hết cho 5 và tổng của chúng trong mảng bằng Python
  7. Bài 47 : Tìm phần tử lớn nhất đầu tiên trong mảng và vị trí của phần tử đó bằng Python
  8. Bài 48: Tìm phần tử lớn nhất đầu tiên trong mảng và vị trí của phần tử đó bằng Python
  9. Bài 49: Sắp xếp mảng theo thứ tự tăng dần bằng Python
  10. Bài 50: In ra các số nguyên tố trong mảng và tính tổng của chúng bằng Python

Cách 1: Chương Trình Đơn Giản

 

# Hàm tìm phần tử lớn nhất đầu tiên và vị trí của nó (cách đơn giản)
def tim_max_va_vi_tri(arr):
    max_value = max(arr)  # Tìm giá trị lớn nhất
    vi_tri = arr.index(max_value)  # Tìm vị trí đầu tiên của giá trị lớn nhất
    print(f"Phần tử lớn nhất đầu tiên trong mảng: {max_value}")
    print(f"Vị trí của phần tử lớn nhất: {vi_tri}")
# 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: "))
# Nhập các phần tử của mảng từ người dùng
danh_sach = [int(input(f"Nhập phần tử thứ {i+1}: ")) for i in range(n)]
# Gọi hàm xử lý
tim_max_va_vi_tri(danh_sach)

Giải Thích:

  • Hàm max(arr) tìm phần tử lớn nhất trong mảng.
  • Hàm arr.index(max_value) tìm vị trí đầu tiên của phần tử lớn nhất.
  • Nhược điểm: Duyệt mảng hai lần, một lần để tìm max, một lần để tìm vị trí.

Cách 2: Chương Trình Tối Ưu Hóa

# Hàm tìm phần tử lớn nhất đầu tiên và vị trí của nó (tối ưu hóa)

 

def tim_max_va_vi_tri(arr):
    if not arr:
        print("Mảng rỗng!")
        return
    max_value = arr[0]  # Giả sử phần tử đầu tiên là lớn nhất
    vi_tri = 0  # Lưu vị trí của phần tử lớn nhất
    for i in range(1, len(arr)):
        if arr[i] > max_value:
            max_value = arr[i]
            vi_tri = i  # Cập nhật vị trí mới của phần tử lớn nhất
    print(f"Phần tử lớn nhất đầu tiên trong mảng: {max_value}")
    print(f"Vị trí của phần tử lớn nhất: {vi_tri}")
# 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: "))
# Nhập các phần tử của mảng từ người dùng
danh_sach = [int(input(f"Nhập phần tử thứ {i+1}: ")) for i in range(n)]
# Gọi hàm xử lý
tim_max_va_vi_tri(danh_sach)

 

Giải Thích:

  • Duyệt mảng chỉ một lần thay vì hai lần như cách đơn giản.
  • Giữ giá trị lớn nhất và vị trí của nó ngay trong vòng lặp, giúp tăng tốc độ thực thi.

So Sánh Hai Cách

Phương phápSố lần duyệt mảngHiệu suất
Cách đơn giản (dùng max() và index())2 lầnChậm hơn
Cách tối ưu (duyệt một lần)1 lầnNhanh hơn

Ứng Dụng

  • Tìm điểm cao nhất trong tập dữ liệu.
  • Xác định giá trị lớn nhất đầu tiên xuất hiện trong danh sách.
  • Ứng dụng trong xử lý dữ liệu và phân tích số liệu.

Kết Luận

Cả hai cách đều có thể giải quyết bài toán tìm phần tử lớn nhất đầu tiên trong mảng và vị trí của nó. Tuy nhiên, cách tối ưu giúp chương trình chạy nhanh hơn và tiết kiệm tài nguyên hơn khi làm việc với tập dữ liệu lớn. Hãy thử nghiệm với các bộ dữ liệu khác nhau để kiểm chứng!

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

 

Khóa học Python online từ cơ bản đến nâng cao