Phương pháp địa chỉ mở (phương pháp băm đóng)

Một phần của tài liệu Bài kiểm tra khoa học máy tính (Trang 36)

Đây là phương pháp giải quyết/ xử lý xung đột bằng băm lại. Băm lại là tính toán lại vị trí lưu trữ khi một xung đột xảy ra và lưu trữ dữ liệu mới ở đó nếu vị trí rỗng

Ví dụ, phần tử a, b, c được lưu trữ trong các vị trí riêng biệt (xác định bởi chỉ số) theo giá trị băm được tính toán. Tiếp theo, phần tử d có giá trị băm là 1, nhưng vị trí 1 đã bị chiếm bởi phần tử a. Ví dụ nếu phương pháp băm lại là “giá trị băm gốc + 1”, thì vị trí tiếp theo được chỉ ra bởi chỉ số 2. Nhưng vị trí đó cũng bị chiếm, đi tiếp tới chỉ số 3. Tìm kiếm vị trí 4, vị trí đó trống. Như kết quả, phần tử d được lưu trữ ở vị trí có chỉ số 4. Nếu xảy ra trường hợp không có chỗ trống tới cuối của bảng băm, trở lại vị trí đầu tiên của bảng và tìm kiếm chỗ trống đầu tiên theo cách tương tự.

Chỉ số Bảng băm

(1) Giá trị băm của phần tử a = 1 1 a Băm lại (2) Giá trị băm của phần tử b = 2 2 b Băm lại (3) Giá trị băm của phần tử c = 3 3 c Lưu trữ (4) Giá trị băm của phần tử d = 1 4 d

5

… …

Q1 Ta gọi cấu trúc dữ liệu mà khái niệm của nó được biểu diễn trong hình dưới đây là gì?

Q2 Ta gọi cấu trúc dữ liệu kiểu “Last-In First-Out (Vào sau ra trước)” là gì?

Q3 Ta gọi cấu trúc dữ liệu kiểu “First-In First-Out (Vào trước ra trước)” là gì?

Q4 Định nghĩa “cây nhị phân” và “cây nhị phân hoàn chỉnh”.

Q5 Ta gọi cây nhị phân thỏa mãn quan hệ sau là gì: “giá trị của con trái < giá trị của phần tử cha < giá trị con phải”?

A1 Danh sách

A2 Ngăn xếp

A3 Hàng đợi

A4 Cây nhị phân: Cây mà mỗi nút của nó có không quá 2 con

Cây nhị phân hoàn chỉnh: Cây nhị phân mà tất cả các lá có chiều sâu như nhau hoặc 2 lá bất kì có chênh lệch chiều sâu nhỏ hơn hoặc bằng 1 và các lá hướng về phía trái

1.4 Giải thuậtMở đầu Mở đầu

Một tập hợp các thủ tục để giải quyết một vấn đề gọi là một giải thuật. Hình vẽ biểu thị tập các thủ tục để đạt tới kết quả thích hợp gọi là lưu đồ. Chúng ta sẽ nghiên cứu một số giải thuật cơ bản.55

1.4.1 Các giải thuật tìm kiếmĐiểm Điểm

chính

 Có 2 loại giải thuật tìm kiếm: tìm kiếm tuyến tính và tìm kiếm nhị phân

 Trong tìm kiếm nhị phân, phần tử được sắp xếp theo thứ tự tăng dần hoặc giảm dần

Tìm kiếm nghĩa là tìm một phần tử trong một bảng (mảng một chiều), và có 2 phương pháp

tìm kiếm: tìm kiếm tuyến tính (tuần tự) và tìm kiếm nhị phân. Tìm kiếm tuần tự có thể thực hiện mà không quan tâm tới các phần tử được sắp xếp như thế nào, nhưng tìm kiếm nhị phân yêu cầu các phần tử đã được sắp xếp theo thứ tự tăng dần hoặc giảm dần

Tìm kiếm tuyến tính (tuần tự)

Đây là phương pháp tìm kiếm các phần tử được yêu cầu trong bảng theo thứ tự từ vị trí đầu tiên của bảng. Nó có thể thực hiện mà không quan tâm tới các phần tử được sắp xếp như thế nào, nhưng nó lâu hơn tìm kiếm nhị phân. Nếu N là số phần tử, cần ít nhất 1 phép so sánh (nếu phần tử cần tìm nằm ở vị trí đầu của bảng) và nhiều nhất N phép so sánh (nếu phần tử cần tìm năm ở vị trí cuối cùng của bảng hoặc không tồn tại)

Trong tìm kiếm tuyến tính, phép so sánh được tạo ra từ chỉ số 1 và tiếp tục cộng 1 để tới chỉ số tiếp theo đến khi chỉ số bằng N.

Ví dụ, phần tử “25” trong bảng được tìm bằng phương pháp tìm kiếm tuyến tính. Nó được so sánh với giá trị đầu tiên, thứ 2, …, thứ 5. Các số xác định vị trí của phần tử là các chỉ số

25

15 30 45 40 25 35 10 5Chỉ số 1 2 3 4 5 Chỉ số 1 2 3 4 5

55 (FAQ) Để biểu diễn các giải thuật, các câu hỏi trong phần thi buổi sáng sử dụng các lưu đồ, trong khi các câu hỏi trong phần thi buổi chiều sử dụng giả ngôn ngữ. Các luật trong giả ngôn ngữ không được trình bày, hãy là đọc lướt nó trong phần thi buổi chiều sử dụng giả ngôn ngữ. Các luật trong giả ngôn ngữ không được trình bày, hãy là đọc lướt nó

Một phần của tài liệu Bài kiểm tra khoa học máy tính (Trang 36)