Giải Tin học 11 trang 103 Kết nối tri thức

Với Giải Tin học 11 trang 103 Bài 21: Các thuật toán sắp xếp đơn giản sách Kết nối tri thức giúp học sinh dễ dàng làm bài tập Tin học 11.

1 269 07/06/2023


Giải Tin học 11 trang 103 Kết nối tri thức

Câu hỏi 1 trang 103 Tin học 11Mô tả các bước thuật toán sắp xếp nổi bọt của dãy A = [4, 3, 1, 2]

Lời giải:

Vòng lặp 1

Chỉ số của dãy

0

1

2

3

 

Trước vòng lặp

4

3

2

1

 

Bước lặp 1, j=0

4

3

2

1

So sánh phần tử thứ nhất và phần tử thứ 2

Bước lặp ,2 j=1

3

4

2

1

So sánh phần tử thứ 2 và phần tử thứ 3

Bước lặp 3, j=2

3

2

4

1

So sánh phần tử thứ 3 và phần tử thứ 4

Kết thúc vòng 1

3

2

1

4

 

Vòng lặp 2

Chỉ số của dãy

0

1

2

3

 

Trước vòng lặp

3

2

1

4

 

Bước lặp 1, j=0

3

2

1

4

So sánh phần tử thứ nhất và phần tử thứ 2

Bước lặp ,2 j=1

2

3

1

4

So sánh phần tử thứ 2 và phần tử thứ 3

Bước lặp 3, j=2

2

1

3

4

So sánh phần tử thứ 3 và phần tử thứ 4

Kết thúc vòng 2

2

1

3

4

 

Vòng lặp 3

Chỉ số của dãy

0

1

2

3

 

Trước vòng lặp

2

1

3

4

 

Bước lặp 1, j=0

1

2

3

4

So sánh phần tử thứ nhất và phần tử thứ 2

Bước lặp ,2 j=1

1

2

3

4

So sánh phần tử thứ 2 và phần tử thứ 3

Bước lặp 3, j=2

1

2

3

4

So sánh phần tử thứ 3 và phần tử thứ 4

Kết thúc vòng 3

1

2

3

4

 

Kết thúc lặp

1

2

3

4

 

 

Câu hỏi 2 trang 103 Tin học 11: Khi nào thì các mũi tên ở tất cả các bước trong sơ đồ mô phỏng thuật toán sắp xếp nổi bọt đều có màu đỏ?

Lời giải:

Thuật toán sắp xếp nổi bọt hoạt động bằng cách so sánh các phần tử kế tiếp trong danh sách và hoán đổi chúng nếu chúng không được sắp xếp theo thứ tự. Quá trình lặp sẽ tiếp tục cho đến khi tất cả các phần tử đều được sắp xếp. Vì vậy khi màu của tất cả các mũi tên đều đỏ trong sơ đồ mô phỏng thì có nghĩa là không còn phần tử nào được sắp xếp theo thứ tự tăng dần hoặc giảm dần và không cần thực hiện bất kỳ hoán đổi nào nữa.

Luyện tập

Luyện tập 1 trang 103 Tin học 11: 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.

Lời giải:

1.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 arr[j] > key:

    arr[j + 1] = arr[j]

    j -= 1

   arr[j + 1] = key

  return arr

A = [5, 8, 1, 0, 10, 4, 3]

sorted_A = insertion_sort(A)

print("Dãy A sau khi sắp xếp chèn:", sorted_A)

2. 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[j] < arr[min_idx]:

     min_idx = j

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

  return arr

A = [5, 8, 1, 0, 10, 4, 3]

sorted_A = selection_sort(A)

print("Dãy A sau khi sắp xếp chọn:", sorted_A)

3.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 - 1):

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

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

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

  return arr

A = [5, 8, 1, 0, 10, 4, 3]

sorted_A = bubble_sort(A)

print("Dãy A sau khi sắp xếp nổi bọt:", sorted_A)

Luyện tập 2 trang 103 Tin học 11Viế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.

Lời giải:

Sử dụng thuật toán săp xếp nổi bọt:

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]

# Nhập dãy số từ bàn phím

input_str = input("Nhập dãy số cách nhau bởi dấu cách: ")

arr = list(map(int, input_str.split()))

# In dãy số trước khi sắp xếp

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

# Sắp xếp dãy số

bubble_sort(arr)

# In dãy số sau khi sắp xếp

print("Dãy số sau khi sắp xếp: ", arr)

Vận dụng

Vận dụng 1 trang 103 Tin học 11Viết lại các thuật toán sắp xếp trong bài theo thứ tự giảm dần.

Lời giải:

1.Thuật toán sắp xếp chèn:

def insertion_sort(arr):

 n = len(arr)

 for i in range(1, n):

  key = arr[i]

  j = i - 1

  while j >= 0 and arr[j] < key:

   arr[j + 1] = arr[j]

   j -= 1

  arr[j + 1] = key

 return arr

2. Thuật toán sắp xếp chọn :

def selection_sort(arr):

 n = len(arr)

 for i in range(n - 1):

  max_idx = i

  for j in range(i + 1, n):

   if arr[j] > arr[max_idx]:

    max_idx = j

  arr[i], arr[max_idx] = arr[max_idx], arr[i]

 return arr

3.Thuật toán sắp xếp nổi bọt:

def bubble_sort(arr):

 n = len(arr)

 for i in range(n - 1):

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

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

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

 return arr

Vận dụng 2 trang 103 Tin học 11: Nêu ý nghĩa thực tế của các thuật toán sắp xếp đã học, chẳng hạn sắp xếp các học Sinh trong lớp theo chiều cao tăng dần.

Lời giải:

Các thuật toán sắp xếp như sắp xếp chèn, sắp xếp chọn và sắp xếp nổi bọt có ý nghĩa thực tế quan trọng trong nhiều tình huống khác nhau, bao gồm việc sắp xếp học sinh trong lớp theo chiều cao tăng dần. Dưới đây là một số ý nghĩa thực tế của các thuật toán sắp xếp:

-Tối ưu hóa thời gian thực thi: Các thuật toán sắp xếp giúp tối ưu hóa thời gian thực thi của các quy trình liên quan đến sắp xếp, giúp giảm bớt thời gian chờ đợi và tăng hiệu quả hoạt động của hệ thống. Ví dụ, khi sắp xếp các học sinh trong lớp theo chiều cao tăng dần, sử dụng thuật toán sắp xếp hiệu quả giúp đảm bảo quá trình sắp xếp nhanh chóng và đáp ứng được thời gian chờ đợi của học sinh và giáo viên.

-Tạo độ thứ tự: Các thuật toán sắp xếp giúp tạo ra độ thứ tự trong các tập dữ liệu, từ đó giúp dễ dàng tìm kiếm, tra cứu, phân tích hoặc xử lý dữ liệu sau này. Ví dụ, trong việc sắp xếp các học sinh trong lớp theo chiều cao tăng dần, độ thứ tự giúp giáo viên dễ dàng định vị vị trí của từng học sinh trong lớp học.

-Áp dụng trong nhiều lĩnh vực: Các thuật toán sắp xếp không chỉ được áp dụng trong lĩnh vực giáo dục, mà còn được sử dụng trong nhiều lĩnh vực khác như khoa học máy tính, công nghệ thông tin, tài chính, thương mại điện tử, kho dữ liệu, v.v. Ví dụ, trong công nghệ thông tin, sắp xếp dữ liệu giúp cải thiện hiệu suất của các thuật toán khác, chẳng hạn trong tìm kiếm dữ liệu, xử lý hình ảnh, xử lý âm thanh, v.v.

-Nền tảng cho các thuật toán phức tạp hơn: Các thuật toán sắp xếp đóng vai trò là nền tảng cho nhiều thuật toán phức tạp.

Xem thêm lời giải bài tập Tin học lớp 11 Kết nối tri thức hay, chi tiết khác:

Giải Tin học 11 trang 99

Giải Tin học 11 trang 100

Giải Tin học 11 trang 102

1 269 07/06/2023


Xem thêm các chương trình khác: