logo

Cho dãy A= [5,8,1,0,10 4,3]. Viết các chương trình sắp xếp dãy A theo thứ tự tăng dần

Cùng Toploigiai Trả lời câu hỏi trang 103 (Cho dãy A= [5,8,1,0,10 4,3]. Viết các chương trình sắp xếp dãy A theo thứ tự tăng dần theo các thuật toán sắp xếp chèn, sắp xếp chọn và sắp xếp nổi bọt) 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: Cho dãy A= [5,8,1, 0,10, 4,3]. Viết các chương trình sắp xếp dãy A theo thứ tự tăng dần theo các thuật toán sắp xếp chèn, sắp xếp chọn và sắp xếp nổi bọt

thuật toán sắp xếp chèn

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

- Viết chương trình sắp xếp dãy A theo thứ tự tăng dần theo các thuật toán sắp xếp chèn (Insertion Sort):

def insertion_sort(arr):
   for i in range(1, len(arr)):
       key = arr[i]
       j = i-1
       while j >=0 and key < arr[j] :
               arr[j+1] = arr[j]
               j -= 1
       arr[j+1] = key

A = [5, 8, 1, 0, 10, 4, 3]
insertion_sort(A)
print("Dãy A sau khi sắp xếp chèn là:", A)

- Viết chương trình sắp xếp dãy A theo thứ tự tăng dần theo các thuật toán sắp xếp chọn (Selection Sort):

def selection_sort(arr):
   for i in range(len(arr)):
       min_idx = i
       for j in range(i+1, len(arr)):
           if arr[min_idx] > arr[j]:
               min_idx = j
       arr[i], arr[min_idx] = arr[min_idx], arr[i]

A = [5, 8, 1, 0, 10, 4, 3]
selection_sort(A)
print("Dãy A sau khi sắp xếp chọn là:", A)

- Viết chương trình sắp xếp dãy A theo thứ tự tăng dần theo các thuật toán sắp xếp nổi bọt (Bubble Sort): 

def bubble_sort(arr):
   n = len(arr)
   for i in range(n):
       for j in range(0, n-i-1):
           if arr[j] > arr[j+1] :
               arr[j], arr[j+1] = arr[j+1], arr[j]

A = [5, 8, 1, 0, 10, 4, 3]
bubble_sort(A)
print("Dãy A sau khi sắp xếp nổi bọt là:", A)

Trả lời chi tiết:

- Viết chương trình sắp xếp dãy A theo thứ tự tăng dần theo các thuật toán sắp xếp chèn (Insertion Sort):

Đây là thuật toán sắp xếp đơn giản, nó sẽ duyệt từng phần tử của dãy và chèn nó vào vị trí đúng trong dãy đã được sắp xếp trước đó. Để sắp xếp dãy A theo thứ tự tăng dần, ta có thể sử dụng mã giả như sau:

def insertion_sort(arr):
   for i in range(1, len(arr)):
       key = arr[i]
       j = i-1
       while j >=0 and key < arr[j] :
               arr[j+1] = arr[j]
               j -= 1
       arr[j+1] = key

A = [5, 8, 1, 0, 10, 4, 3]
insertion_sort(A)
print("Dãy A sau khi sắp xếp chèn là:", A)

- Viết chương trình sắp xếp dãy A theo thứ tự tăng dần theo các thuật toán sắp xếp chọn (Selection Sort):

Đây là thuật toán sắp xếp đơn giản, nó sẽ duyệt từng phần tử của dãy và tìm phần tử nhỏ nhất trong đoạn chưa được sắp xếp và đổi chỗ phần tử đó với phần tử đầu tiên của đoạn chưa được sắp xếp. Để sắp xếp dãy A theo thứ tự tăng dần, ta có thể sử dụng mã giả như sau:

def selection_sort(arr):
   for i in range(len(arr)):
       min_idx = i
       for j in range(i+1, len(arr)):
           if arr[min_idx] > arr[j]:
               min_idx = j
       arr[i], arr[min_idx] = arr[min_idx], arr[i]

A = [5, 8, 1, 0, 10, 4, 3]
selection_sort(A)
print("Dãy A sau khi sắp xếp chọn là:", A)

- Viết chương trình sắp xếp dãy A theo thứ tự tăng dần theo các thuật toán sắp xếp nổi bọt (Bubble Sort): 

Đây là thuật toán sắp xếp đơn giản, nó sẽ duyệt từng phần tử của dãy và so sánh cặp phần tử kế tiếp với nhau, nếu phần tử sau nhỏ hơn phần tử trước thì đổi chỗ hai phần tử đó. Thuật toán sẽ lặp lại quá trình này đến khi không có phần tử nào cần đổi chỗ nữa. Để sắp xếp dãy A theo thứ tự tăng dần, ta có thể sử dụng mã giả như sau:

def bubble_sort(arr):
   n = len(arr)
   for i in range(n):
       for j in range(0, n-i-1):
           if arr[j] > arr[j+1] :
               arr[j], arr[j+1] = arr[j+1], arr[j]

A = [5, 8, 1, 0, 10, 4, 3]
bubble_sort(A)
print("Dãy A sau khi sắp xếp nổi bọt là:", A)

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