Thiết lập chương trình cho công việc thường làm vào cuối giờ bán hàng: Cho trước số K (một doanh số giả định), cần tìm ra mặt hàng có doanh số nhỏ hơn K nhưng gần với K nhất. Bài toán này có thể sử dụng thuật toán tìm kiếm nào để giải?
Thiết lập chương trình cho công việc thường làm vào cuối giờ bán hàng: Cho trước số K (một doanh số giả định), cần tìm ra mặt hàng có doanh số nhỏ hơn K nhưng gần với K nhất. Bài toán này có thể sử dụng thuật toán tìm kiếm nào để giải?
Quảng cáo
Trả lời:
Chương trình sử dụng thuật toán tìm kiếm nhị phân để tìm mặt hàng có doanh số nhỏ hơn K nhưng gần với K nhất trong danh sách mặt hàng đã được sắp xếp theo thứ tự tăng dần của doanh số.
def find_nearest_item(arr, K):
# Sắp xếp danh sách mặt hàng theo thứ tự tăng dần của doanh số
arr.sort()
low, high = 0, len(arr) - 1
result = None
while low <= high:
mid = (low + high) // 2 # Tính giá trị trung bình mid của low và high
if arr[mid] < K:
# Nếu giá trị doanh số của mặt hàng ở vị trí mid nhỏ hơn K
# Đặt low = mid + 1 để tìm phần tử lớn hơn K
low = mid + 1
elif arr[mid] > K:
# Nếu giá trị doanh số của mặt hàng ở vị trí mid lớn hơn K
# Đặt high = mid - 1 để tìm phần tử nhỏ hơn K
high = mid – 1
else:
# Nếu giá trị doanh số của mặt hàng ở vị trí mid bằng K
# Trả về mid làm kết quả
result = mid
break
# Cập nhật giá trị gần K nhất
if result is None or abs(arr[mid] - K) < abs(arr[result] - K):
result = mid
return arr[result]
# Example usage
arr = [10, 20, 30, 40, 50, 60, 70, 80, 90]
K = 45
nearest_item = find_nearest_item(arr, K)
print("Mặt hàng có doanh số nhỏ hơn K nhưng gần với K nhất là:", nearest_item)
Đăng nhập để xem lời giải
Lưu tiến độ và luyện tập hiệu quả hơn. Hoàn toàn miễn phí!
Đang tải chế độ Học...
Hot: 1000+ đề thi giữa kì 1 lớp 1-12 đầy đủ các môn (Update 2026) (chỉ từ 60k). Tải ngay
CÂU HỎI HOT CÙNG CHỦ ĐỀ
Đăng nhập để xem lời giải
Lưu tiến độ và luyện tập hiệu quả hơn. Hoàn toàn miễn phí!
Lời giải
Chương trình trên được thiết kế có 3 mô đun
Đăng nhập để xem lời giải
Lưu tiến độ và luyện tập hiệu quả hơn. Hoàn toàn miễn phí!
Lời giải
B1. Thiết kế chung
B2. Thiết kê công việc nhập dữ liệu
B3. Thiết kế công việc xử lí dữ liệu
B4. Thiết lập báo cáo, đưa ra dữ liệu
Đăng nhập để xem lời giải
Lưu tiến độ và luyện tập hiệu quả hơn. Hoàn toàn miễn phí!
Lời giải
Bạn cần đăng ký gói VIP ( giá chỉ từ 250K ) để làm bài, xem đáp án và lời giải chi tiết không giới hạn.
Đăng nhập để xem lời giải
Lưu tiến độ và luyện tập hiệu quả hơn. Hoàn toàn miễn phí!
Lời giải
Bạn cần đăng ký gói VIP ( giá chỉ từ 250K ) để làm bài, xem đáp án và lời giải chi tiết không giới hạn.
Đăng nhập để xem lời giải
Lưu tiến độ và luyện tập hiệu quả hơn. Hoàn toàn miễn phí!
Lời giải
Bạn cần đăng ký gói VIP ( giá chỉ từ 250K ) để làm bài, xem đáp án và lời giải chi tiết không giới hạn.
Đăng nhập để xem lời giải
Lưu tiến độ và luyện tập hiệu quả hơn. Hoàn toàn miễn phí!
Lời giải
Bạn cần đăng ký gói VIP ( giá chỉ từ 250K ) để làm bài, xem đáp án và lời giải chi tiết không giới hạn.
Đăng ký để học cùng Vietjack. Hoàn toàn miễn phí!
Bằng việc đăng ký, bạn đồng ý với Điều khoản sử dụng và Chính sách bảo mật của Vietjack.