Thcslytutrongst.edu.vn - Thông Tin Kiến Thức Bổ Ích

Tin học 11 Bài 9: Lập trình thuật toán sắp xếp nhanh Tin học lớp 11 trang 127 sách Cánh diều

Tháng mười một 18, 2023 by Thcslytutrongst.edu.vn

Bạn đang xem bài viết Tin học 11 Bài 9: Lập trình thuật toán sắp xếp nhanh Tin học lớp 11 trang 127 sách Cánh diều tại Thcslytutrongst.edu.vn bạn có thể truy cập nhanh thông tin cần thiết tại phần mục lục bài viết phía dưới.

Giải bài tập SGK Tin học 11 trang 127, 128, 129, 130 sách Cánh diều giúp các em học sinh lớp 11 xem gợi ý giải các câu hỏi Bài 9: Lập trình thuật toán sắp xếp nhanh thuộc Chủ đề Fcs: Giải quyết vấn đề với sự trợ giúp của máy tính (Giới thiệu nghề quản trị cơ sở dữ liệu).

Soạn Tin học 11 Cánh diều Bài 9 giúp các em học sinh hiểu được kiến thức về thuật toán sắp xếp nhanh áp dụng phân đoạn Lomuto. Đồng thời, cũng giúp thầy cô tham khảo để soạn giáo án Tin học lớp 11 cho học sinh của mình theo chương trình mới.

Mục Lục Bài Viết

  • Vận dụng Tin học 11 Bài 9
  • Câu hỏi tự kiểm tra Tin 11 Bài 9
    • Câu 1
    • Câu 2

Vận dụng Tin học 11 Bài 9

Vận dụng trang 130 Tin học 11: Em hãy thực hiện các công việc sau:

a) Sửa lại thủ tục phân đoạn đề có hàm quickSort_ down sắp xếp theo thứ tự giảm dần.

Gợi ý. Sửa đối phép so sánh trong câu lệnh 1f a[3] <= pivot: thành 1f a[3]} >= pivot:

b) Tiếp tục sửa lại để có hàm quickSort_tuple down sắp xếp danh sách các cặp. ví dụ (tên học sinh, điểm môn học) theo điệm môn học giảm dần.

Khám Phá Thêm:   Đề thi giữa học kì 1 môn Tiếng Anh 7 i-Learn Smart World Đề kiểm tra giữa kì 1 môn Tiếng Anh 7 (Có đáp án, File nghe)

Gợi ý: Sửa đổi đầu vào thành danh sách các cặp (tên học sinh, điểm môn học) và thực hiện so sánh theo điểm môn học.

Lời giải:

a)Gợi ý

void swap(int *a,int *b){

int temp=*a;

*a=*b;

*b=temp;

}

void bubblesort(int arr[],int n){

for(int i=0; i<n-1; i++){

for(int j=0; j<n-i-1; j++){

if(arr[j]>arr[j+1]){

swap(&arr[j],&arr[j+1]);

}

}

}

}

b) Gợi ý

void quickSort(int a[], int l, int r){

int p = a[(l+r)/2];

int i = l, j = r;

while (i < j){

while (a[i] < p){

i++;

}

while (a[j] > p){

j–;

}

if (i <= j){

int temp = a[i];

a[i] = a[j];

a[j] = temp;

i++;

j–;

}

}

if (i < r){

quickSort(a, i, r);

}

if (l < j){

quickSort(a, l, j);

}

}

Câu hỏi tự kiểm tra Tin 11 Bài 9

Câu 1

Em hãy giải thích tại sao lại nói thuật toán sắp xếp nhanh (QuickSort) theo chiến lược “chia đề trị”.

Lời giải:

Thuật toán QuickSort được xây dựng theo chiến lược “chia để trị” bởi vì nó phân chia dãy số cần sắp xếp thành các phần nhỏ hơn, sau đó sắp xếp từng phần đó và kết hợp các phần đã sắp xếp lại thành dãy số đã được sắp xếp.

Cụ thể, thuật toán QuickSort chia dãy số cần sắp xếp thành hai phần dựa trên một phần tử được gọi là pivot. Tất cả các phần tử nhỏ hơn pivot được đưa về bên trái pivot, còn các phần tử lớn hơn pivot được đưa về bên phải pivot. Sau đó, thuật toán đệ quy được áp dụng lên từng phần của dãy số này, cho đến khi các phần con chỉ còn duy nhất một phần tử. Cuối cùng, các phần đã sắp xếp lại với nhau để tạo ra dãy số đã được sắp xếp.

Khám Phá Thêm:   Văn mẫu lớp 9: Phân tích khổ 2 Đoàn thuyền đánh cá Bài thơ Đoàn thuyền đánh cá của Huy Cận

Vì vậy, chiến lược “chia để trị” của QuickSort cho phép thuật toán chia nhỏ vấn đề lớn hơn thành các vấn đề nhỏ hơn, giúp cho việc giải quyết các vấn đề này trở nên đơn giản và hiệu quả hơn.”

Câu 2

Theo em thì diễn biến từng bước sắp xếp nhanh một dãy số cụ thể dùng phân đoạn Lomuto sẽ giống hay sẽ khác với dùng phân đoạn Hoare?

Lời giải:

Diễn biến từng bước sắp xếp nhanh một dãy số cụ thể dùng phân đoạn Lomuto sẽ khác với dùng phân đoạn Hoare. Sự khác biệt giữa phương pháp phân đoạn Lomuto và phân đoạn Hoare trong thuật toán QuickSort là ở việc chọn pivot, cách phân đoạn và cách sắp xếp các phần tử.

Cụ thể, phương pháp phân đoạn Lomuto sẽ chọn pivot là phần tử cuối cùng của mảng, phân đoạn theo pivot và sau đó đưa pivot về giữa hai phân đoạn, tiếp tục thực hiện thuật toán QuickSort trên hai phân đoạn trái và phải của pivot. Trong khi đó, phương pháp phân đoạn Hoare sẽ chọn pivot là phần tử ở giữa mảng, đưa hai con trỏ từ đầu và cuối mảng trỏ tới nhau và dịch chuyển chúng sao cho phần tử bên trái pivot lớn hơn pivot, phần tử bên phải pivot nhỏ hơn pivot, sau đó đưa pivot về vị trí mới và thực hiện QuickSort trên hai phân đoạn trái và phải của pivot.

Cảm ơn bạn đã xem bài viết Tin học 11 Bài 9: Lập trình thuật toán sắp xếp nhanh Tin học lớp 11 trang 127 sách Cánh diều tại Thcslytutrongst.edu.vn bạn có thể bình luận, xem thêm các bài viết liên quan ở phía dưới và mong rằng sẽ giúp ích cho bạn những thông tin thú vị.

Khám Phá Thêm:   Tập làm văn lớp 5: Tả chiếc đồng hồ đeo tay của em (8 Mẫu) Tả đồ vật lớp 5

 

Bài Viết Liên Quan

Hướng dẫn tắt kiểm tra chính tả trên Windows 10
Cách trình bày bài dự thi Đại sứ văn hóa đọc 2025
Phim Hit the Spot: Nội dung, diễn viên và lịch chiếu phim
Previous Post: « Công nghệ lớp 4 Bài 4: Trồng cây cảnh trong chậu Giải Công nghệ lớp 4 Chân trời sáng tạo trang 29, 30, 31, 32, 33, 34
Next Post: Tin học 11 Bài 11: Thực hành thiết kế và lập trình theo mô đun Tin học lớp 11 trang 135 sách Cánh diều »

Primary Sidebar

Công Cụ Hôm Nay

  • Thời Tiết Hôm Nay
  • Tử Vi Hôm Nay
  • Lịch Âm Hôm Nay
  • Lịch Thi Đấu Bóng Đá Hôm Nay
  • Giá Vàng Hôm Nay
  • Tỷ Giá Ngoaị Tệ Hôm Nay
  • Giá Xăng Hôm Nay
  • Giá Cà Phê Hôm Nay

Công Cụ Online

  • Photoshop Online
  • Casio Online
  • Tính Phần Trăm (%) Online
  • Giải Phương Trình Online
  • Ghép Ảnh Online
  • Vẽ Tranh Online
  • Làm Nét Ảnh Online
  • Chỉnh Sửa Ảnh Online
  • Upload Ảnh Online
  • Paint Online
  • Tạo Meme Online
  • Chèn Logo Vào Ảnh Online

Liên Kết Giới Thiệu

Copyright © 2025 · Thcslytutrongst.edu.vn - Thông Tin Kiến Thức Bổ Ích