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 trong Bài 21: Các thuật toán sắp xếp đơn giản Tin học lớp 11 Kết nối tri thức hay nhất, ngắn gọn sẽ giúp học sinh dễ dàng trả lời các câu hỏi & làm bài tập Tin 11 trang 103.

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

Quảng cáo

Câu hỏi 1 trang 103 Tin học 11: Mô 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

Quảng cáo

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.

Quảng cáo

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:

Quảng cáo

    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 11: 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.

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 1 trang 103 Tin học 11: Viế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.

Lời giải bài tập Tin học 11 Bài 21: Các thuật toán sắp xếp đơn giản hay khác:

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 nhất, ngắn gọn khác:

Xem thêm các tài liệu học tốt lớp 11 hay khác:

ĐỀ THI, GIÁO ÁN, SÁCH LUYỆN THI DÀNH CHO GIÁO VIÊN VÀ PHỤ HUYNH LỚP 11

Bộ giáo án, bài giảng powerpoint, đề thi, sách dành cho giáo viên và gia sư dành cho phụ huynh tại https://tailieugiaovien.com.vn/ . Hỗ trợ zalo VietJack Official

Tổng đài hỗ trợ đăng ký : 084 283 45 85

Đã có app VietJack trên điện thoại, giải bài tập SGK, SBT Soạn văn, Văn mẫu, Thi online, Bài giảng....miễn phí. Tải ngay ứng dụng trên Android và iOS.

Theo dõi chúng tôi miễn phí trên mạng xã hội facebook và youtube:

Nếu thấy hay, hãy động viên và chia sẻ nhé! Các bình luận không phù hợp với nội quy bình luận trang web sẽ bị cấm bình luận vĩnh viễn.


Giải bài tập lớp 11 Kết nối tri thức khác
Tài liệu giáo viên