logo

Viết một thư viện bao gồm các hàm nhập dữ liệu là một dãy số và các hàm thư viện bao gồm sắp xếp chèn, sắp xếp chọn và sắp xếp nổi bọt

Trả lời câu hỏi SGK Tin 11 Kết nối tri thức trang 142: Viết một thư viện bao gồm các hàm nhập dữ liệu là một dãy số và các hàm thư viện bao gồm sắp xếp chèn, sắp xếp chọn và sắp xếp nổi bọt (Bài 30: Thiết lập thư viện cho chương trình)

Câu hỏi: Viết một thư viện bao gồm các hàm nhập dữ liệu là một dãy số và các hàm thư viện bao gồm sắp xếp chèn, sắp xếp chọn và sắp xếp nổi bọt

thư viện Python

Trả lời ngắn gọn: 

Đây là một thư viện đơn giản bao gồm các hàm nhập dữ liệu là một dãy số và các hàm thực hiện các phương pháp sắp xếp chèn, sắp xếp chọn và sắp xếp nổi bọt:

def nhap_day_so():
   # Hàm nhập dãy số từ bàn phím
   # Trả về một danh sách gồm các phần tử đã nhập
   ...

def sap_xep_chen(a):
   # Hàm sắp xếp dãy số bằng phương pháp sắp xếp chèn
   # Tham số đầu vào là một danh sách các phần tử số nguyên
   # Trả về một danh sách mới đã được sắp xếp
   ...

def sap_xep_chon(a):
   # Hàm sắp xếp dãy số bằng phương pháp sắp xếp chọn
   # Tham số đầu vào là một danh sách các phần tử số nguyên
   # Trả về một danh sách mới đã được sắp xếp
   ...

def sap_xep_noi_bot(a):
   # Hàm sắp xếp dãy số bằng phương pháp sắp xếp nổi bọt
   # Tham số đầu vào là một danh sách các phần tử số nguyên
   # Trả về một danh sách mới đã được sắp xếp
   ...
Các hàm sắp xếp này đều có tham số đầu vào là một danh sách các phần tử số nguyên và trả về một danh sách mới đã được sắp xếp. Ta có thể sử dụng các hàm này để sắp xếp dãy số và thực hiện các phương pháp sắp xếp khác nhau.

Trả lời chi tiết:

Đây là một ví dụ về thư viện bao gồm các hàm nhập dữ liệu là một dãy số và các hàm thư viện bao gồm sắp xếp chèn, sắp xếp chọn và sắp xếp nổi bọt:

def nhap_day_so():
   """Hàm nhập dãy số từ bàn phím"""
   n = int(input("Nhập số lượng phần tử của dãy: "))
   a = []
   for i in range(n):
       a.append(int(input(f"Nhập phần tử thứ {i+1}: ")))
   return a

def sap_xep_chen(a):
   """Hàm sắp xếp dãy số bằng phương pháp sắp xếp chèn"""
   for i in range(1, len(a)):
       key = a[i]
       j = i - 1
       while j >= 0 and key < a[j]:
           a[j+1] = a[j]
           j -= 1
       a[j+1] = key
   return a

def sap_xep_chon(a):
   """Hàm sắp xếp dãy số bằng phương pháp sắp xếp chọn"""
   for i in range(len(a)):
       min_idx = i
       for j in range(i+1, len(a)):
           if a[j] < a[min_idx]:
               min_idx = j
       a[i], a[min_idx] = a[min_idx], a[i]
   return a

def sap_xep_noi_bot(a):
   """Hàm sắp xếp dãy số bằng phương pháp sắp xếp nổi bọt"""
   for i in range(len(a)):
       for j in range(0, len(a)-i-1):
           if a[j] > a[j+1]:
               a[j], a[j+1] = a[j+1], a[j]
   return a

Giải thích:

- Hàm nhap_day_so() sẽ cho phép người dùng nhập dữ liệu từ bàn phím và trả về một danh sách gồm các phần tử đã nhập.

- Hàm sap_xep_chen(a) sử dụng phương pháp sắp xếp chèn để sắp xếp dãy số a. Phương pháp này sẽ duyệt qua từng phần tử của dãy số và chèn phần tử đó vào vị trí thích hợp trong dãy đã sắp xếp.

- Hàm sap_xep_chon(a) sử dụng phương pháp sắp xếp chọn để sắp xếp dãy số a. Phương pháp này sẽ tìm phần tử nhỏ nhất trong dãy số chưa sắp xếp và đưa phần tử đó về vị trí đầu tiên trong dãy đã sắp xếp.

- Hàm sap_xep_noi_bot(a) sử dụng phương pháp sắp xếp nổi bọt để sắp xếp dãy số a. Phương pháp này sẽ so sánh cặp phần tử liên tiếp và đổi chỗ chúng nếu chúng chưa được sắp xếp đúng thứ tự.

Các hàm sắp xếp này đều có tham số đầu vào là một danh sách các phần tử số nguyên và trả về một danh sách mới đã được sắp xếp. Bên cạnh đó ta có thể tạo thêm các hàm khác để thực hiện các phương pháp sắp xếp khác như sắp xếp nhanh hay sắp xếp trộn.

Sau khi định nghĩa các hàm này, ta có thể sử dụng chúng như sau:

a = nhap_day_so()
print("Dãy số trước khi sắp xếp:", a)

a_sorted = sap_xep_chen(a)
print("Dãy số sau khi sắp xếp bằng phương pháp sắp xếp chèn:", a_sorted)

a_sorted = sap_xep_chon(a)
print("Dãy số sau khi sắp xếp bằng phương pháp sắp xếp chọn:", a_sorted)

a_sorted = sap_xep_noi_bot(a)
print("Dãy số sau khi sắp xếp bằng phương pháp sắp xếp nổi bọt:", a_sorted)

>> Xem toàn bộ: Soạn Tin 11 Kết nối tri thức

icon-date
Xuất bản : 06/03/2023 - Cập nhật : 10/04/2023