1. Trang chủ
  2. » Tất cả

Bài giảng cấu trúc dữ liệu và thuật toán chương 6 nguyễn khánh phương

20 12 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

Tiêu đề Chương 6. Tìm kiếm (Searching)
Tác giả Nguyễn Khánh Phương
Trường học Trường Đại học Bách Khoa Hà Nội
Chuyên ngành Cấu trúc dữ liệu và thuật toán
Thể loại Bài giảng
Năm xuất bản N/A
Thành phố Hà Nội
Định dạng
Số trang 20
Dung lượng 1,02 MB

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

Nội dung

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘIVIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG Cấu trúc dữ liệu và giải thuật Nguyễn Khánh Phương Computer Science department School of Information and Communica

Trang 1

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI

VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG

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

Nguyễn Khánh Phương

Computer Science department School of Information and Communication technologycuu duong than cong com

Trang 2

Nội dung khóa học

Chương 1 Các kiến thức cơ bản

Chương 2 Thuật toán đệ quy

Chương 3 Các cấu trúc dữ liệu cơ bản

Chương 4 Cây

Chương 5 Sắp xếp

Chương 6 Tìm kiếm

Chương 7 Cấu trúc dữ liệu đồ thị cuu duong than cong com

Trang 3

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG

Chương 6 Tìm kiếm (Searching)

Nguyễn Khánh Phương

Computer Science department School of Information and Communication technologycuu duong than cong com

Trang 4

Bài toán tìm kiếm (Searching problem)

Cho danh sách A gồm n phần tử a1, a2, , an và 1 số x

Câu hỏi: x có mặt trong danh sách A hay không?

• Nếu x có mặt trong danh sách A, hãy đưa ra vị trí xuất hiện của x trong danh sách đã cho, nghĩa là đưa ra chỉ số i sao cho ai = x

cuu duong than cong com

Trang 5

N i dung

1 Tìm kiếm tuần tự

2 Tìm kiếm nhị phân

3 Cây nhị phân tìm kiếm

4 Cây AVL

5 Bảng băm

cuu duong than cong com

Trang 6

N i dung

1 Tìm kiếm tuần tự

2 Tìm kiếm nhị phân

3 Cây nhị phân tìm kiếm

4 Cây AVL

5 Bảng băm

cuu duong than cong com

Trang 7

1 Tìm kiếm tuần tự (Linear Search/Sequential search)

• Đầu vào:

– Cho mảng A gồm n phần tử và giá trị tìm kiếm x.

– Mảng A không cần thiết đã được sắp xếp

• Thuật toán: Bắt đầu từ phần tử đầu tiên, duyệt qua từng phần tử cho đến khi tìm được x hoặc toàn bộ các phần tử của mảng đã được duyệt hết

• Độ phức tạp: O(n)

A:

Target x = 8: cuu duong than cong com

Trang 8

1 Tìm kiếm tuần tự (Linear Search/Sequential search)

void linearSearch(int a[], int size, int target)

{ int i;

for (i = 1; i <= size; i++)

if (a[i] == target) break;

if (i <= size)

printf(“The target is in the list @ index = %d”,i); else

printf(“The target is NOT in the list”);

}

Array A

i=1

cuu duong than cong com

Trang 9

1 Tìm kiếm tuần tự (Linear Search/Sequential search)

void linearSearch(int a[], int size, int target)

{ int i;

for (i = 1; i <= size; i++)

if (a[i] == target) break;

if (i <= size)

printf(“The target is in the list @ index = %d”,i); else

printf(“The target is NOT in the list”);

}

Array A

i=2

cuu duong than cong com

Trang 10

1 Tìm kiếm tuần tự (Linear Search/Sequential search)

void linearSearch(int a[], int size, int target)

{ int i;

for (i = 1; i <= size; i++)

if (a[i] == target) break;

if (i <= size)

printf(“The target is in the list @ index = %d”,i); else

printf(“The target is NOT in the list”);

}

Array A

i=3

cuu duong than cong com

Trang 11

1 Tìm kiếm tuần tự (Linear Search/Sequential search)

void linearSearch(int a[], int size, int target)

{ int i;

for (i = 1; i <= size; i++)

if (a[i] == target) break;

if (i <= size)

printf(“The target is in the list @ index = %d”,i); else

printf(“The target is NOT in the list”);

}

Array A

i=4

cuu duong than cong com

Trang 12

1 Tìm kiếm tuần tự (Linear Search/Sequential search)

void linearSearch(int a[], int size, int target)

{ int i;

for (i = 1; i <= size; i++)

if (a[i] == target) break;

if (i <= size)

printf(“The target is in the list @ index = %d”,i); else

printf(“The target is NOT in the list”);

}

Array A

i=5

cuu duong than cong com

Trang 13

1 Tìm kiếm tuần tự (Linear Search/Sequential search)

void linearSearch(int a[], int size, int target)

{ int i;

for (i = 1; i <= size; i++)

if (a[i] == target) break;

if (i <= size)

printf(“The target is in the list @ index = %d”,i);

else

printf(“The target is NOT in the list”);

}

Array A

i=5

cuu duong than cong com

Trang 14

1 Tìm kiếm tuần tự (Linear Search/Sequential search)

void linearSearch(int a[], int size, int target)

{ int i;

for (i = 1; i <= size; i++)

if (a[i] == target) break;

if (i <= size)

printf(“The target is in the list @ index = %d”,i); else

printf(“The target is NOT in the list”);

}

Array A

i=1

cuu duong than cong com

Trang 15

1 Tìm kiếm tuần tự (Linear Search/Sequential search)

void linearSearch(int a[], int size, int target)

{ int i;

for (i = 1; i <= size; i++)

if (a[i] == target) break;

if (i <= size)

printf(“The target is in the list @ index = %d”,i); else

printf(“The target is NOT in the list”);

}

Array A

i=2

cuu duong than cong com

Trang 16

1 Tìm kiếm tuần tự (Linear Search/Sequential search)

void linearSearch(int a[], int size, int target)

{ int i;

for (i = 1; i <= size; i++)

if (a[i] == target) break;

if (i <= size)

printf(“The target is in the list @ index = %d”,i); else

printf(“The target is NOT in the list”);

}

Array A

i=3

cuu duong than cong com

Trang 17

1 Tìm kiếm tuần tự (Linear Search/Sequential search)

void linearSearch(int a[], int size, int target)

{ int i;

for (i = 1; i <= size; i++)

if (a[i] == target) break;

if (i <= size)

printf(“The target is in the list @ index = %d”,i); else

printf(“The target is NOT in the list”);

}

Array A

i=4

cuu duong than cong com

Trang 18

1 Tìm kiếm tuần tự (Linear Search/Sequential search)

void linearSearch(int a[], int size, int target)

{ int i;

for (i = 1; i <= size; i++)

if (a[i] == target) break;

if (i <= size)

printf(“The target is in the list @ index = %d”,i); else

printf(“The target is NOT in the list”);

}

Array A

i=5

cuu duong than cong com

Trang 19

1 Tìm kiếm tuần tự (Linear Search/Sequential search)

void linearSearch(int a[], int size, int target)

{ int i;

for (i = 1; i <= size; i++)

if (a[i] == target) break;

if (i <= size)

printf(“The target is in the list @ index = %d”,i); else

printf(“The target is NOT in the list”);

}

Array A

i=6

cuu duong than cong com

Trang 20

1 Tìm kiếm tuần tự (Linear Search/Sequential search)

void linearSearch(int a[], int size, int target)

{ int i;

for (i = 1; i <= size; i++)

if (a[i] == target) break;

if (i <= size)

printf(“The target is in the list @ index = %d”,i);

else

printf(“The target is NOT in the list”);

}

Array A

i=7

cuu duong than cong com

Ngày đăng: 27/02/2023, 07:57

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