Hướng dẫn giải nhanh Tin học 11 định hướng Khoa học máy tính KNTT bài 22: Thực hành bài toán sắp xếp

Baivan.net sẽ đưa ra lời giải nhanh, ngắn gọn chuẩn xác môn tin học 11 định hướng Khoa học máy tính bộ sách kết nối tri thức và cuộc sống bài 22: Thực hành bài toán sắp xếp. Học sinh kéo xuống để tham khảo. Hi vọng đây sẽ là tài liệu hữu ích giúp các em đạt hiệu quả cao trong học tập

MỞ ĐẦU

Câu 1: 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?

Trả lời:

Cần đảo ngược dấu so sánh.

 

LUYỆN TẬP

Câu 1: Sử dụng thuật toán sắp xếp chọn viết lại chương trình trong Nhiệm vụ 1.

Trả lời:

  • def selection_sort(arr):

 for i in range(len(arr) - 1):

  min_idx = i

  for j in range(i + 1, len(arr)):

   if arr[j] < arr[min_idx]:

    min_idx = j

  arr[i], arr[min_idx] = arr[min_idx], arr[i]

# Đọc dữ liệu file kho.inp

with open('kho.inp', 'r') as file:

 lines = file.readlines()

 quantities = [int(line.strip()) for line in lines]

# Sắp xếp danh sách số lượng mặt hàng theo thứ tự tăng dần

selection_sort(quantities)

# In danh sách số lượng các mặt hàng đã được sắp xếp ra màn hình

print("Danh sách số lượng các mặt hàng sau khi sắp xếp:")

for quantity in quantities:

 print(quantity)

 

Câu 2: Sử dụng thuật toán sắp xếp nổi bọt viết lại chương trình trong Nhiệm vụ 2.

Trả lời:

def bubble_sort(arr):

 n = len(arr)

 for i in range(n - 1):

  for j in range(0, n - i - 1):

   if arr[j] < arr[j + 1]:

    arr[j], arr[j + 1] = arr[j + 1], arr[j]

# Đọc file diem.inp

with open('diem.inp', 'r') as file:

 lines = file.readlines()

 scores = [float(line.strip()) for line in lines]

# Sắp xếp danh sách điểm trung bình giảm dần

bubble_sort(scores)

# In danh sách đã được sắp xếp ra màn hình

print("Danh sách điểm trung bình giảm dần:")

for score in scores:

 print(score)

 

VẬN DỤNG

Câu 1: Một người đi mua hàng với danh sách các mặt hàng cần mua, đơn giá từng mặt hàng và số lượng hàng cần mua được lưu trong tệp văn bản muahang.inp. Hãy sử dụng thuật toán nổi bọt để sắp xếp các mặt hàng theo thứ tự thành tiền của các mặt hàng tăng dần rồi in ra tên các mặt hàng và thành tiền tương ứng.

Trả lời:

# Đọc file muahang.inp

with open('muahang.inp', 'r') as file:

 lines = file.readlines()

 mat_hangs = []

 for line in lines:

  data = line.strip().split(',')

  ten = data[0]

  don_gia = float(data[1])

  so_luong = int(data[2])

  thanh_tien = don_gia * so_luong

  mat_hangs.append((ten, thanh_tien))

# Sắp xếp danh sách các mặt hàng theo thứ tự thành tiền tăng dần

n = len(mat_hangs)

for i in range(n - 1):

 for j in range(0, n - i - 1):

  if mat_hangs[j][1] > mat_hangs[j + 1][1]:

   mat_hangs[j], mat_hangs[j + 1] = mat_hangs[j + 1], mat_hangs[j]

# In danh sách ra màn hình

print("Danh sách các mặt hàng và thành tiền tương ứng:")

for mat_hang in mat_hangs:

 print("Tên mặt hàng: ", mat_hang[0])

 print("Thành tiền: ", mat_hang[1])

 

 print("-----")

Tìm kiếm google: Giải ngắn gọn Tin học 11 Kết nối tri thức bài 22: Thực hành bài toán sắp xếp, Giải ngắn gọn Tin học 11 KNTT bài 22: Thực hành bài toán sắp xếp

Xem thêm các môn học

Giải tin học 11 định hướng Khoa học máy tính KNTT mới


Đia chỉ: Tòa nhà TH Office, 90 Khuất Duy Tiến, Thanh Xuân, Hà Nội
Điện thoại hỗ trợ: Fidutech - click vào đây
Chúng tôi trên Yotube
Cùng hệ thống: baivan.net - Kenhgiaovien.com - tech12h.com