logo

Viết chương trình nhập một dãy số từ bàn phím, các số cách nhau bởi dấu cách

Cùng Toploigiai Trả lời câu hỏi trang 103 (Viết chương trình nhập một dãy số từ bàn phím, các số cách nhau bởi dấu cách, thực hiện sắp xếp dãy đã nhập theo một trong các thuật toán sắp xếp rồi in kết quả ra màn hình) Bài 21: Các thuật toán sắp xếp đơn giản SGK Tin 11 Kết nối tri thức.

Câu hỏi: Viết chương trình nhập một dãy số từ bàn phím, các số cách nhau bởi dấu cách, thực hiện sắp xếp dãy đã nhập theo một trong các thuật toán sắp xếp rồi in kết quả ra màn hình.

chương trình nhập một dãy số từ bàn phím,

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

Chương trình nhập một dãy số từ bàn phím, các số cách nhau bởi dấu cách, thực hiện sắp xếp dãy đã nhập theo một trong các thuật toán sắp xếp rồi in kết quả ra màn hình:

def selection_sort(arr):
   for i in range(len(arr)):
       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]
   return arr

# nhập dãy số từ bàn phím
arr = input("Nhập dãy số cần sắp xếp, các số cách nhau bởi dấu cách: ").split()

# chuyển đổi dãy số nhập vào thành list các số nguyên
arr = [int(x) for x in arr]

# sắp xếp dãy số bằng thuật toán sắp xếp chọn
sorted_arr = selection_sort(arr)

# in ra kết quả sắp xếp
print("Dãy số sau khi sắp xếp:", sorted_arr)

Bạn có thể thay thế hàm selection_sort bằng các hàm sắp xếp khác như sắp xếp chèn (insertion_sort) hay sắp xếp nổi bọt (bubble_sort).

Trả lời chi tiết:

Để viết chương trình thực hiện sắp xếp dãy số đã nhập từ bàn phím theo một trong các thuật toán sắp xếp, ta có thể sử dụng các thư viện có sẵn trong Python như sorted hoặc list.sort, hoặc tự viết thuật toán sắp xếp. Dưới đây là ví dụ về cách thực hiện bằng cách sử dụng thuật toán sắp xếp chọn:

# Nhập dãy số từ bàn phím
lst = list(map(int, input("Nhập dãy số cách nhau bởi dấu cách: ").split()))

# Sắp xếp dãy số theo thuật toán sắp xếp chọn
for i in range(len(lst)):
   min_idx = i
   for j in range(i+1, len(lst)):
       if lst[j] < lst[min_idx]:
           min_idx = j
   lst[i], lst[min_idx] = lst[min_idx], lst[i]

# In kết quả ra màn hình
print("Dãy số đã sắp xếp:", lst)

Giải thích cụ thể từng bước của chương trình:

- Sử dụng hàm input để nhập dãy số từ bàn phím. Hàm split được sử dụng để tách các số cách nhau bởi dấu cách và tạo thành một list.

- Dùng vòng lặp for để sử dụng thuật toán sắp xếp chọn. Đầu tiên, chọn phần tử nhỏ nhất trong dãy số chưa được sắp xếp và đổi chỗ với phần tử đầu tiên trong dãy số chưa được sắp xếp. Tiếp tục lặp lại quá trình này cho đến khi dãy số được sắp xếp hoàn chỉnh.

- Dùng hàm print để in kết quả dãy số đã được sắp xếp.

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

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