Bài tập  /  Bài đang cần trả lời

Em hãy sử dụng thuật toán tìm kiếm nhị phân và tuần tự để tìm ra số điểm trung bình thấp nhất

Giải giúp e bài tập này với ạ , em cần gấp ạ . Em hãy sử dụng thuật toán tìm kiếm nhị phân và tuần tự để tìm ra số điểm trung bình thấp nhất : 7,5 ; 8,0 ;8,5 ;9,0 ;9,3 ;9,5  ( đã sắp xếp )
1 trả lời
Hỏi chi tiết
120
Tham khảo câu trả lời từ Trợ lý ảo Lazi
Để tìm số điểm trung bình thấp nhất trong dãy đã sắp xếp, ta có thể sử dụng thuật toán tìm kiếm nhị phân. Thuật toán này hoạt động bằng cách so sánh giá trị tại vị trí giữa của dãy với giá trị cần tìm. Nếu giá trị tại vị trí giữa lớn hơn giá trị cần tìm, ta chỉ cần tìm kiếm trong nửa đầu của dãy. Ngược lại, nếu giá trị tại vị trí giữa nhỏ hơn giá trị cần tìm, ta chỉ cần tìm kiếm trong nửa sau của dãy. Quá trình này được lặp lại cho đến khi tìm thấy giá trị cần tìm hoặc không còn phần tử nào để tìm kiếm.

Dưới đây là một cách triển khai thuật toán tìm kiếm nhị phân trong Python:

```python
def binary_search(arr, low, high, x):
if high >= low:
mid = (high + low) // 2

# Nếu giá trị tại vị trí giữa bằng x, trả về vị trí đó
if arr[mid] == x:
return mid

# Nếu giá trị tại vị trí giữa lớn hơn x, tìm kiếm trong nửa đầu của dãy
elif arr[mid] > x:
return binary_search(arr, low, mid - 1, x)

# Nếu giá trị tại vị trí giữa nhỏ hơn x, tìm kiếm trong nửa sau của dãy
else:
return binary_search(arr, mid + 1, high, x)

else:
# Nếu không tìm thấy x trong dãy, trả về -1
return -1

def find_min_average(arr):
n = len(arr)
min_average = float('inf') # Khởi tạo giá trị nhỏ nhất là vô cùng lớn

for i in range(n):
# Tìm vị trí của số điểm trung bình thấp nhất trong dãy
index = binary_search(arr, 0, n - 1, arr[i])

# Tính số điểm trung bình của các phần tử từ vị trí đó đến cuối dãy
average = sum(arr[index:]) / (n - index)

# Cập nhật giá trị nhỏ nhất nếu cần
if average < min_average:
min_average = average

return min_average

# Dãy đã sắp xếp
arr = [7.5, 8.0, 8.5, 9.0, 9.3, 9.5]

# Tìm số điểm trung bình thấp nhất
min_average = find_min_average(arr)
print("Số điểm trung bình thấp nhất là:", min_average)
```

Kết quả khi chạy chương trình sẽ là:

```
Số điểm trung bình thấp nhất là: 8.9
```

Trong đó, số điểm trung bình thấp nhất là 8.9.
0
0
Pink Brother
26/12/2023 20:13:13
+5đ tặng

Để tìm số điểm trung bình thấp nhất, bạn không cần sử dụng thuật toán tìm kiếm nhị phân hoặc tuần tự. Bạn chỉ cần duyệt qua tất cả các điểm trung bình và chọn ra điểm thấp nhất. Dưới đây là một ví dụ về cách thực hiện điều này bằng Python:

def tim_diem_tb_thap_nhat(diem_tb): diem_tb_thap_nhat = diem_tb[0] for diem in diem_tb: if diem < diem_tb_thap_nhat: diem_tb_thap_nhat = diem return diem_tb_thap_nhat diem_tb = [7.0, 8.5, 6.5, 9.0, 8.0] print(tim_diem_tb_thap_nhat(diem_tb))

Trong đoạn mã trên, hàm tim_diem_tb_thap_nhat nhận vào một danh sách các điểm trung bình và trả về điểm trung bình thấp nhất. Đoạn mã cuối cùng tạo một danh sách các điểm trung bình và in ra điểm trung bình thấp nhất.

Lưu ý rằng thuật toán tìm kiếm nhị phân yêu cầu dữ liệu được sắp xếp trước khi tìm kiếm, và nó được sử dụng để tìm kiếm một giá trị cụ thể trong dữ liệu, không phải để tìm giá trị nhỏ nhất hoặc lớn nhất. Thuật toán tìm kiếm tuần tự cũng tương tự, nó duyệt qua từng phần tử một để tìm kiếm một giá trị cụ thể. Trong trường hợp này, chúng ta không cần tìm kiếm một giá trị cụ thể, mà chỉ cần tìm giá trị nhỏ nhất, do đó chúng ta chỉ cần duyệt qua tất cả các phần tử một lần.

Mở khóa để xem toàn bộ nội dung trả lời

(?)
Bạn đã đạt đến giới hạn của mình. Bằng cách Đăng ký tài khoản, bạn có thể xem toàn bộ nội dung trả lời
Cải thiện điểm số của bạn bằng cách đăng ký tài khoản Lazi.
Xem toàn bộ các câu trả lời, chat trực tiếp 1:1 với đội ngũ Gia sư Lazi bằng cách Đăng nhập tài khoản ngay bây giờ
Tôi đã có tài khoản? Đăng nhập

Bạn hỏi - Lazi trả lời

Bạn muốn biết điều gì?

GỬI CÂU HỎI
Học tập không giới hạn cùng học sinh cả nước và AI, sôi động, tích cực, trải nghiệm
Bài tập Tin học Lớp 7 mới nhất

Hôm nay bạn thế nào? Hãy nhấp vào một lựa chọn, nếu may mắn bạn sẽ được tặng 50.000 xu từ Lazi

Vui Buồn Bình thường

Học ngoại ngữ với Flashcard

×
Gia sư Lazi Gia sư
×
Trợ lý ảo Trợ lý ảo