Skip to content

Trang Học trực tuyến

  • Môn Toán

Trang Học trực tuyến

  • Home » 
  • Giải SGK Tin học 11 - Cánh diều

Giải SGK Tin học 11 Bài 8 (Cánh diều): Lập trình một số thuật toán sắp xếp

By admin 09/09/2023 0

Giải bài tập Tin học lớp 11 Bài 8: Lập trình một số thuật toán sắp xếp

Khởi động trang 122 Tin học 11: Trình quản lý tệp của hệ điều hành cho phép lựa chọn hiển thị nội dung của thư mục được sắp xếp thứ tự theo vài cách khác nhau. Em hãy cho biết một trong số các lựa chọn này và giải thích rõ thêm tiêu chí (yêu cầu) sắp xếp tương ứng.

Lời giải:

Sắp xếp nổi bọt

=> Ưu điểm:

• Là thuật toán cơ bản, dễ hiểu, phù hợp cho người bắt đầu học về sắp xếp

• Đoạn code ngắn gọn, dễ nhớ.

Sắp xếp chèn tuyến tính

=> Ưu điểm:

• Thao tác thực hiện đơn giản, dễ hiểu.

• Thể hiện sự hiệu quả cao đối với các số liệu nhỏ.

• Tại các tình huống thực tế, Insertion Sort tỏ ra hiệu quả hơn so với các thuật toán có độ phức tạp �(�2)O(n2) khác (ví dụ Bubble sort).

• Rất phù hợp đối với các số liệu đã được sắp xếp theo thứ tự sẵn.

• Tính ổn định, không làm thay đổi nhiều thứ tự các nguyên tố gốc.

• Cách sắp xếp có tính phương pháp, tuân theo nguyên tắc cụ thể, dễ nhớ và sử dụng.

2. Thuật toán sắp xếp nổi bọt (Bubble Sort)

Hoạt động trang 123 Tin học 11: Dựa trên minh họa diễn biến từng bước của thuật toán sắp xếp nổi bọt được trình bày như ở Hình 1, em hãy nêu tóm tắt ý tưởng của thuật toán này

Lời giải:

Nội dung đang được cập nhật

4. Thực hành

Nhiệm vụ 1 trang 125 Tin học 11: Em hãy thực hiện các công việc sau:

1. Tính số lần lặp của vòng lặp bên trong của thuật toán sắp xếp chèn tuyến tính.

2. Tính số lần lặp của vòng lặp ngoài của thuật toán sắp xếp chèn tuyến tính.

3. Ước lượng độ phức tạp thời gian của thuật toán sắp xếp chèn tuyến tính.

Lời giải:

1. Tính số lần lặp của vòng lặp bên trong của thuật toán sắp xếp chèn tuyến tính.

Em hãy thực hiện các công việc sau trang 125 tin học 11

2. Tính số lần lặp của vòng lặp ngoài của thuật toán sắp xếp chèn tuyến tính.

Em hãy thực hiện các công việc sau trang 125 tin học 11

3. Ước lượng độ phức tạp thời gian của thuật toán sắp xếp chèn tuyến tính:

Vòng lặp for bên ngoài kiểm soát việc thực hiện đúng n-1 bước.

Vòng lặp while lồng bên trong thực hiện đồng thời cùng lúc hai việc a) và b) theo cách dịch chuyển dần từng bước sang trái, từ vị trí i tới vị trí k+1

Nhiệm vụ 2 trang 126 Tin học 11: Viết chương trình Phython thực hiện thuật toán sắp xếp nổi bọt.

Lời giải:

Viết chương trình Phython thực hiện thuật toán sắp xếp nổi bọt.

def bubbleSort(arr):

n = len(arr)

#Duyệt qua tất cả các phần tử

for i in range(n-1):

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

#Hoán đổi phần tử nếu nó lớn hơn phần tử sau nó

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

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

#Thực thi đoạn mã

arr = [64, 34, 25, 12, 22, 11, 90]

bubbleSort(arr)

for i in range(len(arr)):

print(“%d” % arr[i], end=” “)

Nhiệm vụ 3 trang 126 Tin học 11: Em hãy viết chương trình Python thực hiện thuật toán sắp xếp chèn tuyến tính dựa trên mã giả đã cho trong báo học

Lời giải:

Viết chương trình Python thực hiện thuật toán sắp xếp chèn tuyến tính dựa trên mã giả đã cho trong báo học:

void Insertion_Sort(int a[], int n){

int pos, i;

int x;//lưu giá trị a[i] tránh bị ghi đè khi dời chỗ các phần tử

for(i=1; i<n; i++){//đoạn a[0] đã sắp xếp

x = a[i]; pos = i-1;

//tìm vị trí chèn x

while((pos>=0)&&(a[pos]>x)){

                //kết hợp dời chỗ các phần tử sẽ đứng sau x trong danh sách mới

a[pos+1] = a[pos];

pos–;

}

a[pos+1] = x;//chèn x vào danh sách

}

}

void main()

{

int a[5] = {8, 4, 1, 6, 5};

Insertion_Sort(a, 5);

cout<<“Mang sau khi sap xep:”<<endl;

for(int i=0;i<5;i++){

cout<<a[i]<<” “;

}

system(“pause”);

Vận dụng

Vận dụng trang 126 Tin học 11: Cho danh sách Bảng điểm là kết quá học tập gồm các cột Họ và tên, điểm Toán, điểm ngữ văn, điểm Tin học… Hãy viết chương trình sắp xếp Bảng điểm theo điểm môn Tin học giảm dần.

Gợi ý: Mỗi phân tử của Bảng điểm là một danh sách con, ứng với một học sinh. So sánh theo thành phân điểm Tin học của danh sách con để sắp xếp.

Lời giải:

#include

#define GIOI “\nXep loai gioi”

#define KHA “\nXep loai kha”

#define TB “\nXep loai trung binh”

#define YEU “\nXep loai yeu”

/*

    Format code: Alt + Shift + F

*/

int main()

{

    // Nhập điểm 3 môn

    float diemToan;

    float diemVan;

    float diemAnh;

    float dtb;

    printf(“\nNhap diem toan = “);

    scanf(“%f”, &diemToan);

    printf(“\nNhap diem van = “);

    scanf(“%f”, &diemVan);

    printf(“\nNhap diem anh = “);

    scanf(“%f”, &diemAnh);

    dtb = (diemToan + diemVan + diemAnh) / 3;

    printf(“\nDTB = %.2f”, dtb);

    if (dtb < 4)

{

        printf(YEU);

    }else if (dtb < 6.5){

        printf(TB);

    }else if(dtb < 8.0){

        printf(KHA);

    }else{

        printf(GIOI);

    }

}

Câu hỏi tự kiểm tra

Câu hỏi trang 126 Tin học 11: Theo em, thuật toán sắp xếp nổi bọt và thuật toán sắp xếp chèn, thuật toán nào đơn giản và để cài đặt hơn?

Lời giải:

Cả hai thuật toán sắp xếp nổi bọt và sắp xếp chèn đều đơn giản và dễ cài đặt. Tuy nhiên, thuật toán sắp xếp chèn có thể được coi là đơn giản hơn vì nó sử dụng ít phép so sánh hơn so với thuật toán sắp xếp nổi bọt.

Thuật toán sắp xếp chèn thực hiện việc chèn một phần tử vào một mảng đã được sắp xếp trước đó. Với mỗi phần tử trong mảng, nó sẽ so sánh nó với các phần tử đã được sắp xếp trước đó, và chèn phần tử đó vào vị trí thích hợp trong mảng. Điều này đòi hỏi ít phép so sánh hơn so với thuật toán sắp xếp nổi bọt, do đó thuật toán sắp xếp chèn có hiệu suất tốt hơn khi sắp xếp một mảng lớn.

Trong khi đó, thuật toán sắp xếp nổi bọt cần thực hiện nhiều phép so sánh hơn và có thể không hiệu quả khi sắp xếp mảng lớn. Nó hoạt động bằng cách so sánh các cặp phần tử liên tiếp trong mảng và đổi chỗ chúng nếu chúng không được sắp xếp đúng thứ tự. Vì vậy, trong nhiều trường hợp, thuật toán sắp xếp chèn được ưa chuộng hơn do hiệu quả và tính đơn giản của nó.

Xem thêm bài giải SGK Tin học lớp 11 Cánh diều hay, chi tiết khác:

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 mo đun

Share
facebookShare on FacebooktwitterShare on TwitteremailShare on Email
Post navigation
Previous post

Giải SGK Tin học 11 Bài 7 (Cánh diều): Lập trình giải bài toán tìm kiếm

Next post

Sách bài tập Toán 8 Bài 1 (Chân trời sáng tạo): Hình chóp tam giác đều

Bài liên quan:

Giải SGK Tin học 11 Bài 1 (Cánh diều): Bên trong máy tính

Giải SGK Tin học 11 Bài 2 (Cánh diều): Khám thế thế giới qua thiết bị số thông minh

Giải SGK Tin học 11 Bài 3 (Cánh diều): Khái quát về hệ điều hành

Giải SGK Tin học 11 Bài 4 (Cánh diều): Thực hành với các thiết bị số

Giải SGK Tin học 11 Bài 5 (Cánh diều): Phần mềm ứng dụng và dịch vụ phần mềm

Giải SGK Tin học 11 Bài 1 (Cánh diều): Lưu trữ trực tuyến

Giải SGK Tin học 11 Bài 2 (Cánh diều): Thực hành một số tính năng hữu ích của máy tìm kiếm

Giải SGK Tin học 11 Bài 3 (Cánh diều): Thực hành một số tính năng nâng cao của mạng xã hội

Leave a Comment Hủy

Mục lục

  1. Giải SGK Tin học 11 Bài 1 (Cánh diều): Bên trong máy tính
  2. Giải SGK Tin học 11 Bài 2 (Cánh diều): Khám thế thế giới qua thiết bị số thông minh
  3. Giải SGK Tin học 11 Bài 3 (Cánh diều): Khái quát về hệ điều hành
  4. Giải SGK Tin học 11 Bài 4 (Cánh diều): Thực hành với các thiết bị số
  5. Giải SGK Tin học 11 Bài 5 (Cánh diều): Phần mềm ứng dụng và dịch vụ phần mềm
  6. Giải SGK Tin học 11 Bài 1 (Cánh diều): Lưu trữ trực tuyến
  7. Giải SGK Tin học 11 Bài 2 (Cánh diều): Thực hành một số tính năng hữu ích của máy tìm kiếm
  8. Giải SGK Tin học 11 Bài 3 (Cánh diều): Thực hành một số tính năng nâng cao của mạng xã hội
  9. Giải SGK Tin học 11 Bài 4 (Cánh diều): Thực hành một số tính năng hữu ích của dịch vụ thư điện tử
  10. Giải SGK Tin học 11 (Cánh diều) Phòng tránh lừa đảo và ứng xử văn hoá trên mạng
  11. Giải SGK Tin học 11 Bài 1 (Cánh diều): Bài toán quản lý và cơ sở dữ liệu
  12. Giải SGK Tin học 11 Bài 2 (Cánh diều): Bảng và khoá chính trong cơ sở dữ liệu quan hệ
  13. Giải SGK Tin học 11 Bài 3 (Cánh diều): Quan hệ giữa các bảng và khoá ngoài trong CSDL quan hệ
  14. Giải SGK Tin học 11 Bài 4 (Cánh diều): Các biểu mẫu cho xem và cập nhập CSDL
  15. Giải SGK Tin học 11 Bài 5 (Cánh diều): Truy vấn trong cơ sở dữ liệu quan hệ
  16. Giải SGK Tin học 11 Bài 6 (Cánh diều): Truy vấn trong cơ sở dữ liệu quan hệ (tiếp theo)
  17. Giải SGK Tin học 11 Bài 7 (Cánh diều): Các loại kiến trúc của hệ CSDL
  18. Giải SGK Tin học 11 Bài 8 (Cánh diều): Bảo vệ sự an toàn của hệ CSDL và bảo mật thông tin trong CSDL
  19. Giải SGK Tin học 11 (Cánh diều) Nghề quản trị cơ sở dữ liệu
  20. Giải SGK Tin học 11 Bài 1 (Cánh diều): Kiểu mảng và cấu trúc mảng
  21. Giải SGK Tin học 11 Bài 2 (Cánh diều): Mảng hai chiều
  22. Giải SGK Tin học 11 Bài 3 (Cánh diều): Thực hành về tệp, mảng và danh sách
  23. Giải SGK Tin học 11 Bài 4 (Cánh diều): Làm mịn dần từng bước từ thuật toán đến chương trình máy tính
  24. Giải SGK Tin học 11 Bài 5 (Cánh diều): Đánh giá thuật toán
  25. Giải SGK Tin học 11 Bài 6 (Cánh diều): Kiểm thử và sửa lỗi chương trình
  26. Giải SGK Tin học 11 Bài 7 (Cánh diều): Lập trình giải bài toán tìm kiếm
  27. Giải SGK Tin học 11 Bài 9 (Cánh diều): Lập trình thuật toán sắp xếp nhanh
  28. Giải SGK Tin học 11 Bài 10 (Cánh diều): Thiết kế chương trình từ trên xuống và phương pháp mô đun hoá
  29. Giải SGK Tin học 11 Bài 11 (Cánh diều): Thực hành thiết kế và lập trình theo mo đun
  30. Giải SGK Tin học 11 Bài 12 (Cánh diều): Thực hành thiết kế và lập trình theo mo đun (tiếp theo)
  31. Giải SGK Tin học 11 Bài 13 (Cánh diều): Thực hành thiết kế và lập trình theo mo đun (tiếp theo)
  32. Giải SGK Tin học 11 Bài 14 (Cánh diều): Thực hành về thư viện các hàm tự định nghĩa
  33. Giải SGK Tin học 11 Bài 15 (Cánh diều): Cấu trúc dữ liệu danh sách liên kết và ứng dụng
  34. Giải SGK Tin học 11 Bài 1 (Cánh diều): Một số thao tác chỉnh sửa ảnh và hỗ trợ chỉnh sửa ảnh trong phần mềm GIMP
  35. Giải SGK Tin học 11 Bài 2 (Cánh diều): Tẩy xoá ảnh trong GIMP
  36. Giải SGK Tin học 11 Bài 3 (Cánh diều): Tạo ảnh động trong GIMP
  37. Giải SGK Tin học 11 Bài 4 (Cánh diều): Giới thiệu phần mềm làm video Animiz
  38. Giải SGK Tin học 11 Bài 5 (Cánh diều): Chỉnh sửa video trên Animiz
  39. Giải SGK Tin học 11 Bài 6 (Cánh diều): Làm phim hoạt hình trên Animiz
  40. Giải SGK Tin học 11 Bài 7 (Cánh diều): Thực hành tổng hợp
  41. Giải SGK Tin học 11 Bài 1 (Cánh diều): Làm quen với Microsoft Access
  42. Giải SGK Tin học 11 Bài 2 (Cánh diều): Tạo bảng trong cơ sở dữ liệu
  43. Giải SGK Tin học 11 Bài 3 (Cánh diều): Liên kết các bảng trong cơ sở dữ liệu
  44. Giải SGK Tin học 11 Bài 4 (Cánh diều): Tạo và sử dụng biểu mẫu
  45. Giải SGK Tin học 11 Bài 5 (Cánh diều): Thiết kế truy vấn
  46. Giải SGK Tin học 11 Bài 6 (Cánh diều): Tạo báo cáo đơn giản
  47. Giải SGK Tin học 11 Bài 7 (Cánh diều): Chỉnh sửa các thành phần giao diện
  48. Giải SGK Tin học 11 Bài 8 (Cánh diều): Hoàn tất ứng dụng

Copyright © 2025 Trang Học trực tuyến
  • Sach toan
  • Giới thiệu
  • LOP 12
  • Liên hệ
  • Sitemap
  • Chính sách
Back to Top
Menu
  • Môn Toán