Yêu cầu:
Dưới đây là một cách để tạo danh sách học sinh và thực hiện tìm kiếm theo yêu cầu:
students = [
{"name": "Nguyen Van A", "gender": "Nam", "birth_year": 2002, "grade": 9.0},
{"name": "Le Thi B", "gender": "Nữ", "birth_year": 2003, "grade": 8.5},
{"name": "Tran Van C", "gender": "Nam", "birth_year": 2001, "grade": 8.0},
{"name": "Pham Thi D", "gender": "Nữ", "birth_year": 2002, "grade": 9.5},
{"name": "Hoang Van E", "gender": "Nam", "birth_year": 2004, "grade": 7.5},
]
# Sắp xếp danh sách theo điểm tổng kết giảm dần
students.sort(key=lambda x: x["grade"], reverse=True)
def search_sequential(students, name, grade):
for i, student in enumerate(students):
if student["name"] == name and student["grade"] == grade:
return i
return -1
# Ví dụ sử dụng
index = search_sequential(students, "Le Thi B", 8.5)
print("Found at index:", index)
Để tìm kiếm nhị phân, danh sách phải được sắp xếp. Chúng ta sẽ tìm kiếm chỉ theo điểm tổng kết.
def binary_search(students, left, right, grade):
if left > right:
return -1
mid = (left + right) // 2
if students[mid]["grade"] == grade:
return mid
elif students[mid]["grade"] > grade:
return binary_search(students, left, mid - 1, grade)
else:
return binary_search(students, mid + 1, right, grade)
# Ví dụ sử dụng
index = binary_search(students, 0, len(students) - 1, 9.5)
print("Found at index:", index)
Hy vọng bạn tìm được học sinh mình muốn trong danh sách, nhanh gọn như tìm chìa khóa lúc ra khỏi cửa! Đừng quên ghé thăm trituenhantao.io để tìm hiểu thêm về AI và công nghệ nhé!