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

Chương 2 TÌM kím M & S P X P doc

10 137 0

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 10
Dung lượng 1,57 MB

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

Nội dung

Bài tập Chương 2 TÌM KiẾM & SẮP XẾP © Dương Thành Phết-www.thayphet.netThis is trial version Khoa CNTT Trường Cð CNTT TP.HCM www.adultpdf.com... 2.1 Các Giải Thuật Tìm Kiếm © Dương Thành

Trang 1

2.1 Các giải thuật tìm kiếm

2.1.1 Bài toán tìm kiếm 2.1.2 Giải thuật tìm kiếm tuyến tính 2.1.3 Giải thuật Tìm kiếm nhị phân

2.2 Các giải thuật sắp xếp

2.2.1 Bài toán sắp xếp 3.2.1 Giải thuật ñổi chổ trực tiếp –Interchange Sort 3.2.2 Giải thuật chọn trực tiếp-Selection Sort

3.2.3 Giải thuật chèn trực tiếp-Insert Sort 3.2.4 Giải thuật nổi bọt – Bubble Sort 3.2.5 Giải thuật nhanh – Quick Sort

2.3 Bài tập

Chương 2 TÌM KiẾM & SẮP XẾP

© Dương Thành Phết-www.thayphet.netThis is trial version Khoa CNTT Trường Cð CNTT TP.HCM

www.adultpdf.com

Trang 2

2.1 Các Giải Thuật Tìm Kiếm

© Dương Thành Phết-www.thayphet.net Khoa CNTT Trường Cð CNTT TP.HCM

2.1.1 Bài toán tìm kiếm

2.1.2 Giải thuật tìm kiếm tuyến tính

2.1.3 Giải thuật Tìm kiếm nhị phân

This is trial version www.adultpdf.com

Trang 3

2.1.1 Bài Toán Tìm Kiếm

 Trong thực tế, khi thao tác, khai thác dữ liệu hầu như lúc nào cũng phải thực hiện thao tác tìm kiếm

 Kết quả của việc tìm kiếm có thể là không tìm thấy hoặc tìm thấy

 Nếu kết quả là tìm thấy thì nhiều khi còn phải xác ñịnh xem vị trí của phần tử tìm thấy là ở ñâu?

 Việc tìm kiếm nhanh hay chậm tùy thuộc vào trạng thái

và trật tự của dữ liệu trên ñó

 Có 2 thuật toán chính: Tìm kiếm tuyến tính & Tìm kiếm nhị phân

© Dương Thành Phết-www.thayphet.netThis is trial version Khoa CNTT Trường Cð CNTT TP.HCM

www.adultpdf.com

Trang 4

 Giả sử chúng ta có một mảng M gồm N phần tử

 Vấn ñề ñặt ra là có hay không phần tử có giá trị bằng X trong mảng M?

 Nếu có thì phần tử có giá trị bằng X là phần tử thứ mấy trong mảng M?

© Dương Thành Phết-www.thayphet.netThis is trial version Khoa CNTT Trường Cð CNTT TP.HCM

www.adultpdf.com

Trang 5

2.1.2 Giải Thuật Tìm Kiếm Tuyến Tính

 Ý Tưởng:

Tiến hành so sánh x với phần tử thứ nhất, thứ hai…của mảng A cho ñến khi gặp ñược phần tử có khóa cần tìm, hoặc ñã tìm hết mảng mà không thấy x

Ưu ñiểm: Thuật toán này có thể cho ta thực hiện tìm kiếm khi các phần tử trong mảng chưa ñược sắp xếp

Nhược ñiểm: Sẽ mất rất nhiều thời gian nếu như không có phần tử chúng ta cần tìm

© Dương Thành Phết-www.thayphet.netThis is trial version Khoa CNTT Trường Cð CNTT TP.HCM

www.adultpdf.com

Trang 6

VD:Tìm x = 14

14

Chưa hết mảng

Tìm thấy tại

vị trí thứ 5

Tìm thấy tại

vị trí thứ 5

VD:Tìm x = 30

30

Chưa hết mảng

Hết mảng không tìm thấy

 Minh Họa

© Dương Thành Phết-www.thayphet.netThis is trial version Khoa CNTT Trường Cð CNTT TP.HCM

www.adultpdf.com

Trang 7

 Giải thuật:

Bước 1 :

i = 1; // Bắt ñầu từ phần tử ñầu tiên của dãy

Bước 2 : So sánh a[i] với x, có 2 khả năng.

• a[i] = x ; // Tìm thấy.Dừng

• a[i] != x ; // Thực hiện bước 3.

Bước 3 :

• i = i+1; // xét phần tử kế tiếp trong mảng.

• Nếu i > N // Hết mảng.Không tìm thấy.Dừng

Ngược lại: Lặp lại bước 2.

© Dương Thành Phết-www.thayphet.netThis is trial version Khoa CNTT Trường Cð CNTT TP.HCM

www.adultpdf.com

Trang 8

 Cài đặt

Int Timtuyentinh (int a[] , int N , int x)

{

int i = 0;

while((i < N) && (a[i] != x)) i++;

if( i == N)

return -1 ; // tìm hết mảng nhưng không có x else

return i ; //a[i] là phần tử có khóa x.

}

ẹ Dương Thành Phết-www.thayphet.net Khoa CNTT Trường Cđ CNTT TP.HCM

 đánh giá giải thuật

độ phức tập tắnh toán cấp n: T(n)=O(n)

This is trial version www.adultpdf.com

Trang 9

2.1.3 Giải Thuật Tìm Kiếm Nhị Phân

 Ý Tưởng:

- Lần tìm kiếm ban ñầu là phần tử ñầu tiên của dãy (First = 1) ñến phần tử cuối cùng của dãy (Last = N)

- So sánh giá trị X với giá trị phần tử ñứng ở giữa của dãy M là M[Mid]

- Nếu X = M[Mid]: Tìm thấy

- Nếu X < M[Mid]: Rút ngắn phạm vi tìm kiếm

về nửa ñầu của dãy M (Last = Mid–1)

- Nếu X > M[Mid]: Rút ngắn phạm vi tìm kiếm

về nửa sau của dãy M (First = Mid+1)

- Lặp lại quá trình này cho ñến khi tìm thấy phần tử

có giá trị X hoặc phạm vi tìm kiếm không còn nữa (First > Last)

© Dương Thành Phết-www.thayphet.netThis is trial version Khoa CNTT Trường Cð CNTT TP.HCM

www.adultpdf.com

Trang 10

Ưu ñiểm: Thuật toán tìm nhị phân sẽ rút ngắn ñáng

kể thời gian tìm kiếm

Nhược ñiểm: Chỉ thực hiện ñược trên dãy ñã có thứ tự

© Dương Thành Phết-www.thayphet.netThis is trial version Khoa CNTT Trường Cð CNTT TP.HCM

www.adultpdf.com

Ngày đăng: 13/08/2014, 23:21

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

w