BÀI TẬP CÔNG NGHỆ THÔNG TIN TRƯỜNG ITC_3 pot

9 250 0
BÀI TẬP CÔNG NGHỆ THÔNG TIN TRƯỜNG ITC_3 pot

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

Thông tin tài liệu

71 © Dương Thành Phết-www.thayphet.net  Minh Họa Cho dãy có 8 phần tử Sắp xếp theo vi trí tăng dần 1 2 3 5 7 9 10 15 ðoạn cần sắp xếp i=1; j=3 L R X=2 i j L=1 R=3 Khoa CNTT Trường Cð CNTT TP.HCM This is trial version www.adultpdf.com 72 © Dương Thành Phết-www.thayphet.net  Minh Họa Cho dãy có 8 phần tử Sắp xếp theo vi trí tăng dần 1 2 3 5 7 9 10 15 ðoạn cần sắp xếp Không còn ñoạn nào cần sắp xếp Khoa CNTT Trường Cð CNTT TP.HCM This is trial version www.adultpdf.com 73 © Dương Thành Phết-www.thayphet.net Khoa CNTT Trường Cð CNTT TP.HCM 10 5 7 3 9 2 15 1 7 9 5 15 10 9 7 15 10 9 10 15 9 10 5 7 1 2 3 ðoạn [1- 8] ðoạn [4- 8] ðoạn [5- 8] ðoạn [6- 8] ðoạn [6- 7] ðoạn [4- 5] ðoạn [1- 3] This is trial version www.adultpdf.com 74 © Dương Thành Phết-www.thayphet.net  Giải thuật: Bước 1: i=1; Bước 2: j=N; Trong khi (j>i) thực hiện: Nếu a[j]<a[j-1]: Hoán vị a[j] và a[j-1] j—; Bước 3: i=i+1; Nếu i>N-1: Hết dãy, dừng Ngược lại: Lặp lại Bước 2 Khoa CNTT Trường Cð CNTT TP.HCM This is trial version www.adultpdf.com 75 © Dương Thành Phết-www.thayphet.net Cài ðặt void QuickSort(int M[], int First, int Last) { int i, j, tam, x; x = M[(First+Last)/2]; i = First; j = Last; do { while (M[i] <x) i++; while (M[j] > X) j ; if (i <= j) { tam=M[i]; M[i]=M[j]; M[j]=tam; i++; j ; } }while (i<= i); QuickSort(M, First, j); QuickSort (M, i, Last); } Khoa CNTT Trường Cð CNTT TP.HCM This is trial version www.adultpdf.com 76 © Dương Thành Phết-www.thayphet.net  ðánh giá giải thuật: + Trường hợp tốt nhất, khi mảng M có thứ tự tăng: Số phép gán: Gmin = N-1 Số phép so sánh: Smin = N×Log2(N)/2 Số phép hoán vị: Hmin = 0 + Trường hợp xấu nhất, khi phần tử X ñược chọn ở giữa dãy con là giá trị lớn nhất: Số phép gán: Gmax = N×(N-1)/2 Số phép so sánh: Smax = (N-1)×(N-1) Số phép hoán vị: Hmax = N×(N-1)/2 + Trung bình: Số phép gán: Gavg = (N-1)×(N+2)/4 Số phép so sánh: Savg = N×[Log2(N)+2N–2]/4 Số phép hoán vị: Havg = N×(N-1)/4 Khoa CNTT Trường Cð CNTT TP.HCM This is trial version www.adultpdf.com 77 © Dương Thành Phết-www.thayphet.net Chi phí trung bình O(n*log 2 n) Chi phí cho trường hợp xấu nhất O(n 2 ) Chi phí này phụ thuộc vào cách chọn phần tử trục: - Nếu chọn ñược phần tử có giá trị trung bình ta sẽ chia thành 2 dãy bằng nhau - Nếu chọn nhằm phần tử nhỏ nhất (hay lớn nhất)  O(n 2 ) Khoa CNTT Trường Cð CNTT TP.HCM This is trial version www.adultpdf.com 78 1. Trình bày tư tưởng và minh họa giải thuật tìm kiếm tuyến tính, tìm kiếm nhị phân 2. Cài ñặt thuật toán tìm tuyến tính bằng cách: - Sử dụng vòng lặp for - Sử dụng vòng lặp while 3. Trong trường hợp các phần tử của dãy ñã có thứ tự tăng (hoặc giảm) hãy cài ñặt lại thuật toán tìm nhị phân 2.3 Bài Tập © Dương Thành Phết-www.thayphet.net Khoa CNTT Trường Cð CNTT TP.HCM This is trial version www.adultpdf.com 79 1. Trình bày tư tưởng và minh họa 5 giải thuật sắp xếp 2. Cài ñặt 5 giải thuật sắp xếp theo các trường hợp và ñiền kết quả số lần thực hiện các phép toán vào bảng sau: © Dương Thành Phết-www.thayphet.net Khoa CNTT Trường Cð CNTT TP.HCM This is trial version www.adultpdf.com . vòng lặp while 3. Trong trường hợp các phần tử của dãy ñã có thứ tự tăng (hoặc giảm) hãy cài ñặt lại thuật toán tìm nhị phân 2 .3 Bài Tập © Dương Thành Phết-www.thayphet.net Khoa CNTT Trường Cð CNTT. dần 1 2 3 5 7 9 10 15 ðoạn cần sắp xếp Không còn ñoạn nào cần sắp xếp Khoa CNTT Trường Cð CNTT TP.HCM This is trial version www.adultpdf.com 73 © Dương Thành Phết-www.thayphet.net Khoa CNTT Trường. Minh Họa Cho dãy có 8 phần tử Sắp xếp theo vi trí tăng dần 1 2 3 5 7 9 10 15 ðoạn cần sắp xếp i=1; j =3 L R X=2 i j L=1 R =3 Khoa CNTT Trường Cð CNTT TP.HCM This is trial version www.adultpdf.com 72 ©

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

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan