Danh mục

Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 7 - Đỗ Bích Diệp

Số trang: 23      Loại file: pdf      Dung lượng: 391.18 KB      Lượt xem: 12      Lượt tải: 0    
Hoai.2512

Phí tải xuống: 8,000 VND Tải xuống file đầy đủ (23 trang) 0
Xem trước 3 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Bài giảng "Cấu trúc dữ liệu và giải thuật - Chương 7: Tìm kiếm" cung cấp cho sinh viên các kiến thức: Tìm kiếm tuần tự và tìm kiếm nhị phân, tìm kiếm trên cây nhị phân (cây nhị phân tìm kiếm, cây nhị phân tìm kiếm cân bằng (AVL)). Mời các bạn cùng tham khảo nội dung chi tiết.
Nội dung trích xuất từ tài liệu:
Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 7 - Đỗ Bích DiệpCấu trúc dữ liệu và giải thuật Chương VII : Tìm kiếm Tìm kiếm – Phần I z Nội dung 1. Tìm kiếm tuần tự và tìm kiếm nhị phân 2. Tìm kiếm trên cây nhị phân 1. Cây nhị phân tìm kiếm 1. Đặc điểm của cây nhị phân tìm kiếm 2. Thao tác bổ sung trên cây nhị phân tìm kiếm 3. Thao tác loại bỏ trên cây nhị phân tìm kiếm 2. Cây nhị phân tìm kiếm cân bằng (AVL) 1. Khôi phục tính cân bằng khi thực hiện bổ sung và loại bỏĐỗ Bích Diệp - Khoa CNTT-ĐHBK HN 1Cấu trúc dữ liệu và giải thuật Bài toán Tìm kiếm – Tìm kiếm là thuật toán tìm 1 phần tử có giá trị cho trước trong một tập các phần tử 23 78 45 8 32 56 78? 23 78 45 8 32 56 – Khóa tìm kiếm: Một bộ phận của các phần tử trong tập mà giá trị của nó được sử dụng để so sánh và tìm kiếm Tìm kiếm tuần tự – Tìm kiếm tuần tự z Các phần tử trong tập đầu vào không được sắp xếp theo khóa tìm kiếm z Mô tả – Duyệt dãy (danh sách, hàng đợi , v…v ) chứa các phần tử trong tập – So sánh với khóa cần tìm tới khi tìm thấy khóa hoặc duyệt qua hết mảng mà chưa tìm thấy – Trả lại chỉ số phần tử trong dãy (nếu thấy)Đỗ Bích Diệp - Khoa CNTT-ĐHBK HN 2Cấu trúc dữ liệu và giải thuật Tìm kiếm tuần tự Function SEQUENTIAL(A, n, key) ≠ {tìm phần tử có khóa key trong mảng A gồm n phần tử. Kết quả trả ra: -1 nếu không tìm thấy phần tử có khóa key, chỉ số của phần tử nếu tìm thấy} 1. i:= 1; 2. while (i n) then return -1 { không thấy}; 4. else return i{tìm thấy tại vị trí i} Tìm kiếm tuần tự – Độ phức tạp : z Trường hợp tốt nhất: O(1) z Trường hợp tồi nhất: O(n) z Trường hợp trung bình : O(n)Đỗ Bích Diệp - Khoa CNTT-ĐHBK HN 3Cấu trúc dữ liệu và giải thuật Tìm kiếm nhị phân z Tìm kiếm nhị phân – Sử dụng cho việc tìm kiếm trên mảng đã được sắp xếp – Mô tả z Chọn phần tử “ở giữa” dãy – A[k] để thực hiện so sánh với giá trị cần tìm z Nếu key = A[k] thì tìm thấy , kết thúc z Nếu key < A[k] thì tìm trên nửa đầu của mảng đã cho z Nếu key > A[k] thì tìm trên nửa sau của mảng đã cho Tìm kiếm nhị phân Function BINARY-SEARCH(A,l, r, key) 1. If (l> r) return -1; 2. m = (l+r) /2 ; 3. If (A[m] = key ) return m ; 4. Else if (A[m] > key) return BINARY-SEARCH(A, l, m-1, key); 5. Else return BINARY-SEARCH(A, m+1, r, key);Đỗ Bích Diệp - Khoa CNTT-ĐHBK HN 4Cấu trúc dữ liệu và giải thuật Tìm kiếm nhị phân Function BINARY-SEARCH(A,n,key) 1. l:=1 ; r := n ; { l, r lần lượt là biến chỉ số sử dụng để ghi nhận chỉ số của phần tử đầu và phần tử cuối của mảng mà chú ...

Tài liệu được xem nhiều: