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

15 người thi tuần này 4.6 147 lượt thi 6 câu hỏi

🔥 Đề thi HOT:

1404 người thi tuần này

Bộ 4 đề thi cuối học kì 2 Tin 11 Kết nối tri thức có đáp án (Đề 1)

4.7 K lượt thi 31 câu hỏi
1095 người thi tuần này

15 câu Trắc nghiệm Tin học 11 Kết nối tri thức Bài 26 có đáp án

2.7 K lượt thi 15 câu hỏi
854 người thi tuần này

Bộ 4 đề thi giữa học kì 2 Tin 11 Kết nối tri thức có đáp án (Đề 1)

6.4 K lượt thi 31 câu hỏi
783 người thi tuần này

15 câu Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25 có đáp án

2.1 K lượt thi 15 câu hỏi
517 người thi tuần này

Bộ 4 đề thi cuối học kì 2 Tin 11 Kết nối tri thức có đáp án (Đề 2)

3.8 K lượt thi 30 câu hỏi
499 người thi tuần này

15 câu Trắc nghiệm Tin học 11 Kết nối tri thức Bài 27 có đáp án

1.4 K lượt thi 15 câu hỏi
461 người thi tuần này

15 câu Trắc nghiệm Tin học 11 Kết nối tri thức Bài 28 có đáp án

1.3 K lượt thi 15 câu hỏi
376 người thi tuần này

Bộ 4 đề thi cuối học kì 2 Tin 11 Kết nối tri thức có đáp án (Đề 3)

3.6 K lượt thi 31 câu hỏi

Danh sách câu hỏi:

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.

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: 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. (ảnh 1)

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: 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. (ảnh 2)

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

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=" ")

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");

Lời giải

 #include <stdio.h>

#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);

    }

}

Lời giải

Bạn cần đăng ký gói VIP ( giá chỉ từ 199K ) để làm bài, xem đáp án và lời giải chi tiết không giới hạn.

Nâng cấp VIP

4.6

29 Đánh giá

50%

40%

0%

0%

0%