Tin học 11 · Chung, Khoa học máy tính và Tin học ứng dụng
Tin họcLớp 11Phần 6. KHMT · Chủ đề 6. Kĩ thuật lập trình · Chọn định hướng, không bắt buộc THUD

Bài 22 · KHMT. Thực hành bài toán sắp xếp

Mục tiêu bài học

  • Giải thích và vận dụng kiến thức về thực hành bài toán sắp xếp.
  • Tạo hoặc đánh giá sản phẩm cụ thể, giải thích kết quả và kiểm tra điều kiện áp dụng.

Bài giảng

Hiểu cách hoạt động

Kiểm tra thuật toán sắp xếp cần hai tính chất: dãy theo thứ tự và giữ đúng mọi phần tử. Thử dãy rỗng, một phần tử, đã sắp, ngược và có giá trị lặp. Đối với bản ghi nhiều trường, so sánh khóa nhưng di chuyển cả bản ghi để không ghép sai dữ liệu.

Làm và tự kiểm tra

Chương trình mẫu đã kiểm tra bằng thực thi trong quá trình biên soạn:

def sap(a):
    b=a.copy()
    for i in range(len(b)-1):
        k=i
        for j in range(i+1,len(b)):
            if b[j]<b[k]:
                k=j
        b[i],b[k]=b[k],b[i]
    return b
a=[6,2,6,1]
b=sap(a)
print(sum(b))

Với đầu vào cố định như chương trình, kết quả in: 15. Kết quả1,2,6,6tổng15, nguồn không đổi.

Ghi nhớ

Kiểm tra thuật toán sắp xếp cần hai tính chất: dãy theo thứ tự và giữ đúng mọi phần tử.

Bài tập

Đã đúng 0/6 câu

  1. Câu 1Mức 2Trả lời ngắn

    Chương trình Python sau in ra số nào?

    def sap(a):
        b=a.copy()
        for i in range(len(b)-1):
            k=i
            for j in range(i+1,len(b)):
                if b[j]<b[k]:
                    k=j
            b[i],b[k]=b[k],b[i]
        return b
    print(len(sap([])))
    
  2. Câu 2Mức 2Trả lời ngắn

    Chương trình Python sau in ra số nào?

    def sap(a):
        b=a.copy()
        for i in range(len(b)-1):
            k=i
            for j in range(i+1,len(b)):
                if b[j]<b[k]:
                    k=j
            b[i],b[k]=b[k],b[i]
        return b
    print(sap([7])[0])
    
  3. Câu 3Mức 2Trả lời ngắn

    Chương trình Python sau in ra số nào?

    def sap(a):
        b=a.copy()
        for i in range(len(b)-1):
            k=i
            for j in range(i+1,len(b)):
                if b[j]<b[k]:
                    k=j
            b[i],b[k]=b[k],b[i]
        return b
    print(sap([9,4,1])[-1])
    
  4. Câu 4Mức 2Trắc nghiệm 1 đáp án

    Dãy kết quả tăng nhưng thiếu một số lặp có đúng không?

  5. Câu 5Mức 2Đúng / Sai

    Sắp bản ghi theo điểm cần di chuyển cả tên và điểm cùng nhau.

  6. Câu 6Mức 2Sắp xếp thứ tự

    Sắp xếp các bước theo phương pháp giải của nhiệm vụ này.

    Sắp xếp các mục theo thứ tự đúng (kéo thả hoặc dùng nút mũi tên).

    1. 1Kiểm tra số lượng và phần tử nguồn
    2. 2Chuẩn bị bộ ca đa dạng
    3. 3Chạy sắp xếp trên bản sao
    4. 4Kiểm tra thứ tự
  7. Câu 7Mức 3Tự luận

    Viết và kiểm tra sắp xếp chọn với6,2,6,1. Viết chương trình hoàn chỉnh và kiểm tra theo dữ liệu mẫu. Người dạy chấm mã và lập luận, không so khớp kí tự mã. Nêu thêm kết quả với[],[7],[9,4,1].

    0 từ

    0/10 ảnh

    Có thể chụp nhiều trang. Ảnh được lưu cùng bài làm và giáo viên sẽ chấm trên ảnh.

    Vẽ bài làm

    Ảnh bài làm

    Cuộn chuột hoặc chụm hai ngón để phóng to · kéo để di chuyển · phím R để xoay

  8. Câu 8Mức 4Tự luận

    Chỉ kiểm tra tổng bằng nhau có đủ chứng minh bảo toàn phần tử? Cho phản ví dụ.

    0 từ

    0/10 ảnh

    Có thể chụp nhiều trang. Ảnh được lưu cùng bài làm và giáo viên sẽ chấm trên ảnh.

    Vẽ bài làm

    Ảnh bài làm

    Cuộn chuột hoặc chụm hai ngón để phóng to · kéo để di chuyển · phím R để xoay