1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng Cấu trúc dữ liệu và giải thuật: Ôn tập - ThS. Nguyễn Hà Giang

37 16 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 37
Dung lượng 361,07 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Chương này giúp người học ôn tập lại những kiến thức cơ bản trong học phần môn Cấu trúc dữ liệu và giải thuật. Nội dung ôn tập gồm có: Độ phức tạp của giải thuật, tìm kiếm & sắp xếp, danh sách liên kết, stack & queue, cấu trúc cây. Mời các bạn cùng tham khảo.

Trang 1

Ôn tập

Cấu trúc dữ liệu & giải thuật

Trang 2

Nội dung

• Phần đánh giá cuối khoá

• Độ phức tạp của giải thuật

• Tìm kiếm & sắp xếp

• Danh sách liên kết

• Stack & queue

• Cấu trúc cây

Trang 3

Đánh giá cuối khoá

Trang 4

Đánh giá cuối khoá

Nội dung Số câu hỏi

Trang 6

Độ phức tạp của giải thuật

• Thời gian thực hiện GT

– Giải thuật

– Tập chỉ thị của máy tính

– Cấu hình của máy tính

– Kỹ năng của người lập trình

• Dựa trên sự thực thi

• Thời gian thực hiện của chương trình là hàm theo kích thước dữ liệu vào n.

Trang 7

Độ phức tạp của giải thuật

• Đơn vị của T(n) : theo số lệnh được thực hiện.

Trang 8

Độ phức tạp giải thuật

• Khi n đủ lớn: n > 20, thì T1(n) < T2(n)

• Cách hợp lý nhất là xét tỷ suất tăng của hàm TG thực hiện CT thay vì chính bản thân thời gian thực hiện.

Trang 9

Tỉ suất tăng

• Hàm ko âm T(n) có tỉ xuất tăng f(n) nếu

tồn tại các hằng số C và N0 sao cho:

– “ cho hàm ko âm T(n) bất kỳ, ta luôn tìm được

tỷ suất tăng f(n) của nó

Trang 10

Độ phức tạp giải thuật

• Cho hàm T(n), T(n) có độ phức tạp f(n) nếu tồn tại các hằng C, N0 sao cho:

suất tăng là f(n) và ký hiệu T(n) là O(f(n))

Trang 16

3 Có 3 lệnh thực thi tuần tự I1, I2 và I3, độ phức tạp O(I1) = 1, O(I2)

= logn và O(l3) = n 2 Độ phức tạp của khi 3 lệnh thực thi tuần tự là

4 Có 2 nhóm lệnh I1 và I2, độ phức tạp O(l1) = logn và O(l2) = O(1)

Lệnh l1 thực thi n lần, mỗi lần gọi thực thi l2 Độ phức tạp là

Trang 20

Câu hỏi

kiếm nhị phân để tìm phần tử có giá trị 33 thì cần bao nhiêu lần so sánh khóa

A 2 B 3 C 4 D 5

thuật tìm kiếm nhị phân để tìm phần tử có khóa là 8 thì các giá trị lần lượt được so sánh là

thuật giải tìm kiếm nhị phân để tìm phần tử có khoá là 9 thì giải thuật kết thúc không tìm thấy khi so sánh với phần tử nào trong mảng

thuật chọn để sắp xếp thì tại lượt thứ 3 thì trạng thái sắp xếp của mảng là:

A 2 12 8 5 1 6 4 15

B 1 2 8 5 12 6 4 15

C 1 2 5 8 12 6 4 15

D 1 2 4 5 12 6 8 15

Trang 24

8 Phương pháp sắp xếp nào không cần so sánh giá trị khóa của các phần tử

A Quicksort

B Shellsort

C InterchangeSort

D RadixSort

Trang 25

9 Cho hàm InsertionSort không đầy đủ

1 void InsertionSort(int a[], int n) {

2 int pos, i, x;

3 for(i=1; i < n; i++) {

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

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

Trang 27

Linked list

1 Phát biểu nào của danh sách liên kết dùng cấp phát động là đúng

A Thao tác thêm và xóa đơn giản

B Kích thước của danh sách phải cố định

C Có thể áp dụng tìm kiếm nhị phân

D Các phần tử nằm liên tục trong bộ nhớ

Trang 30

Linked list

4 Cho hàm xóa nút đầu danh sách

void DeleteFirst(NodePtr &pHead) {

Trang 31

Linked list

5 Hoàn thành thao tác xóa nút sau p

Trang 33

Linked list

7 Điểm nổi bật của danh sách liên kết vòng

A duyệt nhanh hơn dslk đơn

B cho phép duyệt hai chiều

C chỉ cần biết một phần tử là có thể duyệt hết danh sách

D

Trang 34

Linked list

8 Thao tác chèn vào đầu DSLK vòng

1 void InsertFirst(NodePtr &pList, int x) {

Trang 35

Linked list

9.Thao tác chèn vào cuối

1 void InsertLast(NodePtr &pList, int x) {

Ngày đăng: 09/05/2021, 18:24

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm