OPTADS360
AANETWORK
AMBIENT
YOMEDIA
Banner-Video
IN_IMAGE

Tin học 11 Kết nối tri thức Bài 21: Các thuật toán sắp xếp đơn giản


Hãy cùng khám phá bài học thú vị Bài 21: Các thuật toán sắp xếp đơn giản. Trong bài này, các em sẽ biết và thực hiện một số thuật toán sắp xếp đơn giản. HOC247 mong rằng sẽ mang đến cho các em những kiến thức bổ ích qua các bài học của chương trình Tin học 11 Khoa học máy tính. Chúc các em học tốt và tích lũy được những kiến thức cần thiết để vươn tới thành công.

ADSENSE/lession_isads=0
QUẢNG CÁO
 
 
 

Tóm tắt lý thuyết

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

- Thuật toán sắp xếp chèn: chỉ số i chạy từ 1 đến n-1. Mỗi vòng "chèn" phần tử A[i] vào vị trí đúng của dãy con đã sắp xếp A[0] đến A[i-1].

- "Chèn" A[i] vào vị trí đúng trong dãy con A[0] đến A[i-1] bằng cách "nhấc" A[i] lên, chuyển các phần tử bên trái A[i] lớn hơn sang phải, và đặt A[i] vào vị trí đúng.

- Sau n-1 bước lặp, dãy được sắp xếp xong.

- Thuật toán sắp xếp chèn có thể mô tả bằng hàm insertionSort(A) như sau:

 

 

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

- Thuật toán sắp xếp chọn: chỉ số i chạy từ 0 đến n-2.

- Tại mỗi bước lặp, tìm phần tử nhỏ nhất trong dãy A[i], A[i+1], A[n-1] và đổi chỗ phần tử nhỏ nhất này với A[i].

- Mô tả thuật toán chọn như sau:

 

 

- Thuật toán sắp xếp chọn có thể mô tả bằng hàm insertionSort(A) như sau:

 

 

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

- Thuật toán sắp xếp nổi bọt lấy ý tưởng từ hiện tượng "nổi bọt" của không khí dưới nước.

- Ý tưởng của thuật toán nổi bọt: liên tục đổi chỗ hai phần tử cạnh nhau nếu chúng chưa được sắp thứ tự đúng.

 

 

- Chỉ số j chạy từ 0 đến n - 2 và kiểm tra hai phần tử liền nhau A[j], A[j + 1], nếu chưa sắp thứ tự đúng thì đổi chỗ.

- Sau mỗi vòng lặp, phần tử lớn nhất được chuyển về cuối dãy.

- Không cần đủ n - 1 bước lặp, với chỉ số i, vòng lặp ở dòng 2 chỉ cần n-1-i bước lặp.

- Thuật toán sắp xếp chọn có thể mô tả bằng hàm BubbleSort(A) như sau:

 

ADMICRO

Bài tập minh họa

Cho dãy B = [1, 0, 5, 4, 3, 9]. Hãy viết các chương trình sắp xếp dãy B theo thứ tự tăng dần bằng 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?

 

Hướng dẫn 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

B = [1, 0, 5, 4, 3, 9]

sorted_B = insertion_sort(B)

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

 

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

B = [1, 0, 5, 4, 3, 9]

sorted_B = selection_sort(B)

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

B = [1, 0, 5, 4, 3, 9]

sorted_B = bubble_sort(B)

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

ADMICRO

3. Luyện tập Bài 21 SGK Tin học 11 Kết nối tri thức

Qua bài học này, các em sẽ: Biết và thực hiện được một số thuật toán sắp xếp đơn giản.

3.1. Trắc nghiệm Bài 21 SGK Tin học 11 Kết nối tri thức  

Như vậy là các em đã xem qua bài giảng Bài 21 Chủ đề 6 Tin học lớp 11 Kết nối tri thức. Để củng cố kiến thức bài học mời các em tham gia bài tập trắc nghiệm Trắc nghiệm Tin học 11 Kết nối tri thức Bài 21.

Câu 4-10: Mời các em đăng nhập xem tiếp nội dung và thi thử Online để củng cố kiến thức về bài học này nhé!

3.2. Bài tập Bài 21 SGK Tin học 11 Kết nối tri thức

Các em có thể xem thêm phần hướng dẫn Giải bài tập Tin học 11 Kết nối tri thức Bài 21 để giúp các em nắm vững bài học và các phương pháp giải bài tập.

Khởi động trang 99 SGK Tin học 11 Kết nối tri thức - KNTT

Hoạt động 1 trang 99 SGK Tin học 11 Kết nối tri thức - KNTT

Câu hỏi 1 trang 100 SGK Tin học 11 Kết nối tri thức - KNTT

Câu hỏi 2 trang 100 SGK Tin học 11 Kết nối tri thức - KNTT

Hoạt động 2 trang 100 SGK Tin học 11 Kết nối tri thức - KNTT

Câu hỏi 1 trang 102 SGK Tin học 11 Kết nối tri thức - KNTT

Câu hỏi 2 trang 102 SGK Tin học 11 Kết nối tri thức - KNTT

Hoạt động 3 trang 102 SGK Tin học 11 Kết nối tri thức - KNTT

Câu hỏi 1 trang 103 SGK Tin học 11 Kết nối tri thức - KNTT

Câu hỏi 2 trang 103 SGK Tin học 11 Kết nối tri thức - KNTT

Luyện tập 1 trang 103 SGK Tin học 11 Kết nối tri thức - KNTT

Luyện tập 2 trang 103 SGK Tin học 11 Kết nối tri thức - KNTT

Vận dụng 1 trang 103 SGK Tin học 11 Kết nối tri thức - KNTT

Vận dụng 2 trang 103 SGK Tin học 11 Kết nối tri thức - KNTT

4. Hỏi đáp Bài 21 SGK Tin học 11 Kết nối tri thức

Trong quá trình học tập nếu có thắc mắc hay cần trợ giúp gì thì các em hãy comment ở mục Hỏi đáp, Cộng đồng Tin học của HOC247 sẽ hỗ trợ cho các em một cách nhanh chóng!

Chúc các em học tập tốt và luôn đạt thành tích cao trong học tập!

 

-- Mod Tin Học 11 HỌC247

NONE
OFF