-
Tất cả
-
Học tập
-
Lớp 1
-
Lớp 2
-
Lớp 3
-
Lớp 4
-
Lớp 5
-
Thi vào 6
-
Lớp 6
-
Lớp 7
-
Lớp 8
-
Lớp 9
-
Thi vào 10
-
Lớp 10
-
Lớp 11
-
Lớp 12
-
Thi THPT QG
-
Thi ĐGNL
-
Đề thi
-
Thi IOE
-
Thi Violympic
-
Trạng nguyên Tiếng Việt
-
Văn học
-
Sách điện tử
-
Học tiếng Anh
-
Tiếng Nhật
-
Mầm non
-
Cao đẳng - Đại học
-
Giáo án
-
Bài giảng điện tử
-
Cao học
-
Tài liệu Giáo viên
-
Công thức toán
-
-
Tài liệu
-
Hướng dẫn
-
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
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.
Tin học 11 Bài 9: Lập trình thuật toán sắp xếp nhanh
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.
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.
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.

Chọn file cần tải:
- Tin học 11 Bài 9: Lập trình thuật toán sắp xếp nhanh Tải về
Theo Nghị định 147/2024/ND-CP, bạn cần xác thực tài khoản trước khi sử dụng tính năng này. Chúng tôi sẽ gửi mã xác thực qua SMS hoặc Zalo tới số điện thoại mà bạn nhập dưới đây:

Tài liệu tham khảo khác
Tin học 11 Bài 12: Thực hành thiết kế và lập trình theo mô đun (tiếp theo)
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 11 Bài 10: Thiết kế chương trình từ trên xuống và phương pháp mô đun hoá
Tin học 11 Bài 8: Lập trình một số thuật toán sắp xếp
Tin học 11 Bài 7: Lập trình giải bài toán tìm kiếm
Lớp 11 tải nhiều
Có thể bạn quan tâm
-
Nghị luận xã hội về ý thức học tập của học sinh
100.000+ 2 -
Toán 6 Bài tập cuối chương IV - Kết nối tri thức với cuộc sống
10.000+ -
Dàn ý nghị luận xã hội - Dàn bài nghị luận xã hội
50.000+ -
Bộ đề thi học kì 2 môn Giáo dục Kinh tế và Pháp luật 11 năm 2023 - 2024 (Sách mới)
50.000+ -
Tả ngôi nhà của gia đình em (37 mẫu)
100.000+ 4 -
Văn mẫu lớp 12: So sánh ba bản tuyên ngôn độc lập của nước Việt Nam
10.000+ -
Phân tích truyện ngắn Gió lạnh đầu mùa của Thạch Lam
100.000+ 1 -
Viết bài văn nghị luận về mối quan hệ giữa con người với tự nhiên trong bài Muối của rừng
50.000+ -
Mẫu đơn đề nghị hỗ trợ chi phí học tập mới nhất
10.000+ -
Hoạt động trải nghiệm 8: Lập và thực hiện kế hoạch hoạt động thiện nguyện
10.000+
Mới nhất trong tuần
Bài chung của 2 sách
- Chủ đề A: Máy tính và xã hội tri thức
- Chủ đề C: Tổ chức lưu trữ, tìm kiếm và trao đổi thông tin
- Chủ đề D: Đạo đức, pháp luật và văn hóa trong môi trường số
- Chủ đề F: Giải quyết vấn đề với sự trợ giúp của máy tính
- Bài 1: Bài toán quản lý và cơ sở dữ liệu
- Bài 2: Bảng và khoá chính trong cơ sở dữ liệu quan hệ
- Bài 3: Quan hệ giữa các bảng và khoá ngoài trong cơ sở dữ liệu quan hệ
- Bài 4: Các biểu mẫu cho xem và cập nhập dữ liệu
- Bài 5: Truy vấn trong cơ sở dữ liệu quan hệ
- Bài 6: Truy vấn trong cơ sở dữ liệu quan hệ (tiếp theo)
- Bài 7: Các loại kiến trúc cơ sở dữ liệu
- Chủ đề G: Hướng nghiệp với Tin học (Giới thiệu nghề quản trị cơ sở dữ liệu)
Tin học 11 Định hướng Khoa học máy tính
- Chủ đề FCS: Giải quyết vấn đề với sự trợ giúp của máy tính
- Bài 1: Kiểu mảng và cấu trúc mảng
- Bài 2: Mảng hai chiều
- Bài 3: Thực hành về tệp, mảng và danh sách
- Bài 4: Làm mịn dần từng bước từ thuật toán đến chương trình máy tính
- Bài 5: Đánh giá thuật toán
- Bài 6: Kiểm thử và sửa lỗi chương trình
- Bài 7: Lập trình giải bài toán tìm kiếm
- Bài 8: Lập trình một số thuật toán sắp xếp
- Bài 9: Lập trình thuật toán sắp xếp nhanh
- Bài 10: Thiết kế chương trình từ trên xuống và phương pháp mô đun hoá
- Bài 11: Thực hành thiết kế và lập trình theo mô đun
- Bài 12: Thực hành thiết kế và lập trình theo mo đun (tiếp theo)
- Bài 13: Thực hành thiết kế và lập trình theo mô đun (tiếp theo)
- Bài 14: Thực hành về thư viện các hàm tự định nghĩa
- Bài 15: Cấu trúc dữ liệu danh sách liên kết và ứng dụng
- Chủ đề FCS: Giải quyết vấn đề với sự trợ giúp của máy tính
Tin học 11 Định hướng Tin học ứng dụng
- Không tìm thấy