Cho danh sách tên các bn hs trg lớp 7a1 như sau
Châu , Dũng , Hà, Ánh , Bảo ,Linh,thắng, nhàn,quyên
a, hãy sắp xếp lại danh sách theo thứ tự bảng chữ cái
b, Liệt kê các bước tìm kiếm tên bạn 'Thắng " theo thuật toán tìm kiếm nhị phân
Hãy nhập câu hỏi của bạn vào đây, nếu là tài khoản VIP, bạn sẽ được ưu tiên trả lời.
def binary_search(names, target):
low = 0
high = len(names) - 1
while low <= high:
mid = (low + high) // 2
mid_name = names[mid]
if mid_name == target:
return mid
elif mid_name < target:
low = mid + 1
else:
high = mid - 1
return -1
# Danh sách tên học sinh trong lớp (đã được sắp xếp theo thứ tự bảng chữ cái)
class_names = ["An", "Bình", "Cường", "Đạt", "Hoàn", "Minh", "Nam", "Thảo", "Trung"]
# Tên học sinh cần tìm
target_name = "Minh"
# Gọi hàm tìm kiếm nhị phân
result = binary_search(class_names, target_name)
if result != -1:
print("Học sinh có tên là", target_name, "được tìm thấy tại vị trí", result)
else:
print("Học sinh có tên là", target_name, "không tồn tại trong danh sách.")
`-` Danh sách đó được sắp xếp theo thứ tự của bảng Alphabet (thứ tự các chữ).
`-` Cần sắp xếp tên trong danh sách như vậy để dễ dàng tìm kiếm, nhận dạng ra tên của các bạn nhanh hơn.
theo em, danh sách đó có được sắp xếp theo thứ tự bảng chữ cái, vì để dễ dàng nhớ được tên hơn, và dựa vào những chữ lần lượt trong bảng chữ cái để dễ nhận biết hơn
a) Danh sách học sinh của lớp:
def tim_vi_tri_ten_hs(ten, danh_sach_hs):
for i, ten_hs in enumerate(danh_sach_hs):
if ten_hs == ten:
return i
return -1
danh_sach_hs = ["Nam", "An", "Binh", "Chung", "Duc", "Huong"]
ten_can_tim = "An"
vi_tri = tim_vi_tri_ten_hs(ten_can_tim, danh_sach_hs)
if vi_tri >= 0:
print(f"Vi tri cua ten '{ten_can_tim}' trong danh sach la {vi_tri}")
else:
print(f"Ten '{ten_can_tim}' khong nam trong danh sach")
b) Danh sách tên các chủ tài khoản ngân hàng đã sắp xếp theo thứ tự bảng chữ cái:
def tim_vi_tri_ten_tk(ten, danh_sach_tk):
left, right = 0, len(danh_sach_tk) - 1
while left <= right:
mid = (left + right) // 2
if danh_sach_tk[mid] == ten:
return mid
elif danh_sach_tk[mid] < ten:
left = mid + 1
else:
right = mid - 1
return -1
danh_sach_tk = ["An", "Binh", "Duc", "Huong", "Nam"]
ten_can_tim = "Huong".upper()
vi_tri = tim_vi_tri_ten_tk(ten_can_tim, danh_sach_tk)
if vi_tri >= 0:
print(f"Vi tri cua ten '{ten_can_tim}' trong danh sach la {vi_tri}")
else:
print(f"Ten '{ten_can_tim}' khong nam trong danh sach")
Số thứ tự | Họ và tên | Nam , nữ | Ngày sinh | Nơi ở |
---|---|---|---|---|
1. | Hoàng Minh Đức | Nam | 3-2-2009 | xã Phước Lợi, huyện Cần Giuộc, tỉnh Long An. |
2. | Nguyễn Thảo Mai | Nữ | 17-5-2009 | xã Phước Lợi, huyện Cần Giuộc, tỉnh Long An. |
3. | Nguyễn Thanh Tú | Nam | 3-3-2009 | xã Phước Lợi, huyện Cần Giuộc, tỉnh Long An. |
4. | Hoàng Ngọc Yến | Nữ | 17-8-2009 | xã Phước Lợi, huyện Cần Giuộc, tỉnh Long An. |
Thao tác tìm kiếm thông tin trên máy tìm kiếm:
+ Truy cập vào máy tìm kiếm
+ Gõ từ khóa vào ô để nhập từ khóa
+ Nhấn phím Enter hoặc nháy nút tìm kiếm. Kết quả tìm kiếm sẽ được liệt kê dưới dạng danh sách liên kết.
→ Đáp án B
Tên học sinh theo danh sách được xếp theo thứ tự bảng chữ cái.