Luyện tậpCâu hỏi 1. 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ư...

Câu hỏi:

Luyện tập

Câu hỏi 1. 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.

Câu trả lời:
Người trả lời: GV. Đỗ Đăng Đạt
Để trả lời câu hỏi trên, bạn có thể thực hiện theo các bước sau:

Bước 1: Viết các hàm nhập dữ liệu và sắp xếp dãy số như sau:

```python
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
```

Bước 2: Gọi các hàm này để nhập dãy số và sắp xếp dãy số như sau:

```python
day_so = nhap_day_so()
print("Dãy số ban đầu:", day_so)

day_so_sap_xep_chen = sap_xep_chen(day_so.copy())
print("Dãy số sau khi sắp xếp chèn:", day_so_sap_xep_chen)

day_so_sap_xep_chon = sap_xep_chon(day_so.copy())
print("Dãy số sau khi sắp xếp chọn:", day_so_sap_xep_chon)

day_so_sap_xep_noi_bot = sap_xep_noi_bot(day_so.copy())
print("Dãy số sau khi sắp xếp nổi bọt:", day_so_sap_xep_noi_bot)
```

Khi chạy chương trình, bạn sẽ được yêu cầu nhập dãy số từ bàn phím, sau đó sẽ hiển thị dãy số ban đầu và các dãy số sau khi sắp xếp bằng 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.

Nếu bạn cần thêm thông tin hoặc có thắc mắc, hãy để lại comment để được hỗ trợ thêm.
Bình luận (0)
Nhấn vào đây để đánh giá
Thông tin người gửi
0.11012 sec| 2260.422 kb