Tìm kiếm - Searching Trình bày các thuật toán thông dụng cho việc tìm kiếm (Tìm tuần tự, tìm nhị phân) p Minh họa các thuật toán p Đánh giá thuật toán p Spring 2004 Data Structure & Algorithm - Nguyen Tri Tuan - Khoa CNTT ĐH KHTN 1 Công dụng p Tìm kiếm trong một danh sách các phần tử là một thao tác thường sử dụng trên máy tính p Ví dụ: p Cơ sở dữ liệu (Database): tìm 1 sinh viên, tìm 1 tài khoản ngân hàng, p Internet: Yahoo!, Google, Spring 2004 Data Structure & Algorithm - Nguyen Tri Tuan - Khoa CNTT ĐH KHTN 2 1 Các phương. | 1 Ấ o 1 kiêm - Searching Trình bày các thuật toán thông dụng cho việc tìm kiêm Tìm tuần tự tìm nhị phân Minh họa các thuật toán Đánh giá thuật toán Spring 2004 Data Structure Algorithm - Nguyen Tri Tuan - Khoa CNTT ĐH KHTN 1 Công dụng Tìm kiêm trong một danh sách các phần tử là một thao tác thường sử dụng trên máy tính Ví dụ Cơ sở dữ liệu Database tìm 1 sinh viên tìm 1 tài khoản ngân hàng . Internet Y ahoo Google . Spring 2004 Data Structure Algorithm - Nguyen Tri Tuan - Khoa CNTT ĐH KHTN 2 1 1 1 r 1 Ầ 1 Ấ Các phương pháp phô biên Tìm tuần tự Serial Search Đơn giản Chi phí O n Tìm nhị phân Phải là 1 danh sách đặc Dữ liệu cần được sắp thứ tự Chi phí trung bình O log2n Spring 2004 Data Structure Algorithm - Nguyen Tri Tuan - Khoa CNTT ĐH KHTN 3 Tìm tuần tự Serial Search int SerialSearch int a int n int key for int i 0 i n i if a i key return i tìm thấy return -1 không tìm th ấy Spring 2004 Data Structure Algorithm - Nguyen Tri Tuan - Khoa CNTT ĐH KHTN 4 2 Serial Search Đánh giá thuật toán Kích thước của dãy n Trường hợp tốt nhất O 1 key a 0 Trường hợp xấu nhất O n key a n-1 hoặc không tìm thấy Trường hợp trung bình ít hơn O n Chính xác là bao nhiêu Spring 2004 Data Structure Algorithm - Nguyen Tri Tuan - Khoa CNTT ĐH KHTN 5 Serial Search Trường hợp trung bình Giả sử phần tử cần tìm key có trong dãy xác suất xuất hiện tại các vị trí trong dãy là như nhau Chi phí trung bình 1 2 3 . n n n 1 2 n 1 Spring 2004 Data Structure Algorithm - Nguyen Tri Tuan - Khoa CNTT ĐH KHTN 6