Cô giáo có danh sách tên các bạn trong lớp em. Theo em, danh sách đó có được sắp xếp theo thứ tự nào không? Vì sao cần sắp xếp tên trong danh sách như vậy?
Cho danh sách tên các nước sau đây:
Bolivia, Albania, Scotland, Canada, Vietnam, Iceland, Portugal, Greendland, Germany
a) Em hãy sắp xếp danh sách tên các nước theo thứ tự trong bảng chữ cái.
b) Em hãy liệt kê các bước tìm kiếm tên nước Iceland trong danh sách đã sắp xếp theo thuật toán tìm kiếm nhị phân.
c, Vẽ sơ đồ khối.
Làm giúp mình với mình cần gấp
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
Tên học sinh trong danh sách được xếp theo thứ tự nào ?
Em chú ý vào chữ đầu tiên trong tên của các bạn.
Tên học sinh theo danh sách được xếp theo thứ tự bảng chữ cái.
Trong bài 21, em đã được học cách triển khai thuật toán sắp xếp để sắp xếp các phần tử trong danh sách theo thứ tự tăng dần. Nếu cần sắp xếp theo thứ tự ngược lại thì câu lệnh so sánh tương ứng trong vòng lặp sẽ cần thay đổi như thế nào?
Nếu muốn sắp xếp danh sách theo thứ tự giảm dần thay vì thứ tự tăng dần, ta cần thay đổi câu lệnh so sánh trong vòng lặp của thuật toán sắp xếp. Cụ thể,cần đảo ngược dấu so sánh.
THAM KHẢO!Cho A là danh sách tên các học sinh trong lớp được sắp xếp theo thứ tự bảng chữ cái, viết thương trình tìm kiếm nhị phân để tìm ra các học sinh có tên là Minh.
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.")
Lập danh sách một nhóm từ 3 đến 5 bạn trong tổ học tập của em theo mẫu sau:
Ghi chép lại thông tin của các bạn trong tổ và lập danh sách theo mẫu. Lưu ý: sắp xếp tên các bạn theo thứ tự bảng chữ cái, trình bày sạch đẹp.
Số thứ tự | Họ và tên | Nam, nữ | Ngày sinh | Nơi ở |
---|---|---|---|---|
1 | Ngô Hồng Anh | Nữ | 13-06-1996 | xã Phước Lợi, huyện Cần Giuộc, tỉnh Long An. |
… | … | … | … | … |
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. |
Viết chương trình tìm kiếm vị trí tên của một người trong mỗi danh sách sau đây:
a) Danh sách học sinh của lớp em.
b) Danh sách tên của các chủ tài khoản ngân hàng (kí tự không dấu) và đã sắp thứ tự theo bảng chữ cái.
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ắp xếp kết quả một môn học theo thứ tự giảm dần. Cái biên một hàm thực hiện thuật toán sắp xếp nào đó, ví dụ sắp xếp nhanh quicksort thành hàm quickSort_tuple_down để sắp xếp một danh sách các cặp (tên, điểm) theo thứ tự điểm giảm dần.
Tham khảo:
- Cải biển hàm phandoanLomuto thành him phandoanlomuto_tuple để sắp các cặp (Tên, điểm môn học) theo thành phần điểm môn học.
- Trong him phandoanLomuto_tuple đảo chiều phép so sánh trong câu lệnh if từ "ca" thành "y" để sắp thứ tự giảm dần, đặt tên hàm mới là phanhoanLamuto_tuple_down.
- Dùng hàm phanhoanLamuto_tuple_down để cải biên quícksort thành hàm quickSort_tuple_down.
Hãy sắp xếp danh sách {1,8,6,7,10,4,28} theo thứ tự tăng dần.Thuật toán tìm kiếm nhị phân cần bao nhiêu bước để tìm thấy số 10 trong danh sách vừa sắp xếp