Thơ tình của PusKin

43
Thơ tình của PusKin Thơ tình của PusKin Tôi yêu em đến nay chừng có Tôi yêu em đến nay chừng có thể thể Ngọn lửa tình chưa hẳn đã Ngọn lửa tình chưa hẳn đã tàn phai tàn phai Nhưng không để em bận lòng Nhưng không để em bận lòng thêm nửa thêm nửa Hay lòng em phải gợi bóng u Hay lòng em phải gợi bóng u hoài hoài Tôi yêu em yêu âm thầm, Tôi yêu em yêu âm thầm, không huy vọng không huy vọng Lúc rụt rè ,khi hậm hực Lúc rụt rè ,khi hậm hực

description

Thơ tình của PusKin. Tôi yêu em đến nay chừng có thể Ngọn lửa tình chưa hẳn đã tàn phai Nhưng không để em bận lòng thêm nửa Hay lòng em phải gợi bóng u hoài Tôi yêu em yêu âm thầm, không huy vọng Lúc rụt rè ,khi hậm hực lòng ghen Tôi yêu em yêu chân thành đằm thắm. Thơ tình. - PowerPoint PPT Presentation

Transcript of Thơ tình của PusKin

Page 1: Thơ tình của PusKin

Thơ tình của PusKinThơ tình của PusKinTôi yêu em đến nay chừng có thểTôi yêu em đến nay chừng có thể

Ngọn lửa tình chưa hẳn đã tàn phaiNgọn lửa tình chưa hẳn đã tàn phaiNhưng không để em bận lòng thêm Nhưng không để em bận lòng thêm

nửa nửa Hay lòng em phải gợi bóng u hoàiHay lòng em phải gợi bóng u hoài

Tôi yêu em yêu âm thầm, không huy Tôi yêu em yêu âm thầm, không huy vọngvọng

Lúc rụt rè ,khi hậm hực lòng ghenLúc rụt rè ,khi hậm hực lòng ghenTôi yêu em yêu chân thành đằm Tôi yêu em yêu chân thành đằm

thắm thắm

Page 2: Thơ tình của PusKin

Thơ tìnhThơ tình

Cầu Cầu được ngườiđược người tình như tôi đã yêu em tình như tôi đã yêu em

Page 3: Thơ tình của PusKin

Thuật toán sắp xếp nhanh(tiếp Thuật toán sắp xếp nhanh(tiếp theo)theo)

• Trong lần trước chúng ta đã trình bày thuật toán sắp xếp nhanh với ý tưởng chọn phần tử đầu tiên làm mốc.Hôm nay chúng ta sẽ trình bày cách chọn mốc thứ hai. Đó là chọn phần tử giửa mảng làm mốc

Page 4: Thơ tình của PusKin

Ý tưởngÝ tưởng

• Chọn phần tử ở giửa mảng làm mốc• Đổi chỗ các phần tử ở trước và sau phần

tử mốc• Sao cho đến một lúc nào đó các phần tử ở

trước mốc thì bé hơn hoặc bằng mốc và các phần tử ở sau mốc lớn hơn mốc

• Lúc này ta phân dãy thành hai dãy con• Hai dãy con được sắp xếp một cách đệ

quy

Page 5: Thơ tình của PusKin

Ví dụVí dụ

• Sắp xếp dãy sau theo thứ tự tăng dần

• 10 7 8 4 5 6

• Theo bạn kết quả sẽ là bao nhiêu?

Page 6: Thơ tình của PusKin

10 7 8 4 5 6

L=0 R=5

Page 7: Thơ tình của PusKin

6 7 8 4 5 10

L=0 R=5

Page 8: Thơ tình của PusKin

6 7 5 4 8 10

L=0 R=5

Page 9: Thơ tình của PusKin

• Ta được hai dãy con

6 7 5 4 8 10

L=0 R=3

Page 10: Thơ tình của PusKin

• Ta đươc hai dãy con

6 7 5 4 8 10

L=0 R=3

Page 11: Thơ tình của PusKin

• Ta đươc hai dãy con

6 4 5 7 8 10

L=0 R=2

Page 12: Thơ tình của PusKin

• Ta được hai dãy con

6 5 7 8 10

L=0 R=1

4

Page 13: Thơ tình của PusKin

• Dãy được sắp xếp xong

5 6 7 8 104

Page 14: Thơ tình của PusKin

Ví dụ 2Ví dụ 2

• Sắp xếp dãy sau theo thứ tự giảm dần

• 6 8 7 8 9 10 8 11

• Bạn sẽ giải quyết bài này như thế nào?

Page 15: Thơ tình của PusKin

Phân tíchPhân tích

• Ở đây đề bài yêu cầu chúng ta sắp xếp giảm dần nên thuật toán chúng ta phải có sự thay đổi một chút

Cụ thể: +)đi từ đầu dãy nếu gặp được phần tử nhỏ hơn mốc thì dừng

+)sau đó đi từ cuối dãy nếu gặp phần tử lớn hơn mốc thì dừng

+)nếu chỉ số của phần tử nhỏ hơn mốc nhỏ hơn phần tử lớn hơn mốc thì đổi chổ chúng

+)tiếp tục làm giống thuật toán ban đầu

Page 16: Thơ tình của PusKin

Lời giảiLời giải

6 8 7 8 9 10 8 11

L=0 R=7

Page 17: Thơ tình của PusKin

Lời giảiLời giải

11 8 7 8 9 10 8 6

L=0 R=7

Page 18: Thơ tình của PusKin

Lời giảiLời giải

11 8 7 8 9 10 8 6

L=0 R=7

Page 19: Thơ tình của PusKin

Lời giảiLời giải

11 8 10 8 9 7 8 6

L=0 R=7

Page 20: Thơ tình của PusKin

Lời giảiLời giải

11 8 10 9 8 7 8 6

L=0 R=2R=3 L=0

Page 21: Thơ tình của PusKin

Lời giảiLời giải

• Ta được hai dãy con

11 8 10 9 8 7 8 6

L=0 R=2R=3 L=0

Page 22: Thơ tình của PusKin

Lời giảiLời giải

• Ta được hai dãy con

11 9 10 8 8 8 7 6

L=0 R=2R=3 L=0

Page 23: Thơ tình của PusKin

Lời giảiLời giải

• Ta được hai dãy con

11 9 10 8 8 8 7 6

L=0 R=2

Page 24: Thơ tình của PusKin

Lời giảiLời giải

• Dãy đươc sắp xếp xong

11 10 9 8 8 8 7 6

Page 25: Thơ tình của PusKin

• Bước 1:\\ chọn phần tử giửa làm mốc• x=a[(l+r)/2];i=l;j=r;• Bước 2:\\ phát hiện và hiệu chỉnh cặp phần tử

sai vị trí• Bước 2a) Trong khi (a[i]<x) i++;• Bước 2b) Trong khi (a[j]>x) j--;• Nếu i<j \\a[i]>=x>=a[j] mà a[j] đứng sau

a[i];• hoán vị(a[i],a[j]);

Giải thuật phân hoạch(cho mãng Giải thuật phân hoạch(cho mãng a[l]..a[r])a[l]..a[r])

Page 26: Thơ tình của PusKin

• Bước 3: nếu i<j :lặp lại bước 2 \\ chưa xét hết mãng;

• ngược lại thì dừng

Page 27: Thơ tình của PusKin

Giải thuật sắp xếp Giải thuật sắp xếp nhanh(Quicksortnhanh(Quicksort))

• Bước 1: phân hoạch dãy a[l]..a[r] thành hai dãy con

• +)dãy con 1:a[l]..a[i-1]<=x• +)dãy con 2:a[i]=x• +)dãy con 3:a[i+1]..a[r]>x• Bước 2: nếu (l<i-1) \\ nghĩa là dãy con 1 có

nhiều hơn một phần tử• Phân hoạch dãy a[l]..a[i-1]• nếu (i+1<r) thì phân hoạch dãya[i+1]..a[r]

Page 28: Thơ tình của PusKin

Cài đặt theo ngôn ngữ PascalCài đặt theo ngôn ngữ Pascal

• Procedure Quick_sort(l,r: integer,var a:mảng);

• Var i,j,x:integer;• Begin• x:=a[(l+r) div 2];i:=l;j:=r;• while(i<j) do• begin• while(a[i]<x) do i:=i+1;

Page 29: Thơ tình của PusKin

• while(a[j]>x) do j:=j-1;• if(i<=j) then• begin• hoanvi(a[i],a[j]);• i:=i+1;j:=j-1;• end;• if(l<j) then Quick_sort(l,j,a);• if(i<r) then Quick_sort(i,r,a);end;

Page 30: Thơ tình của PusKin

Cài đặt(theo ngôn ngữ C++)Cài đặt(theo ngôn ngữ C++)

• void Quick_sort( int a[],int l,int r);• {int i,j;• int x;• x=a[(l+r)/2]; \\chọn phần tử ở giửa làm mốc• i=l;j=r;• do {• while (a[i]<x) i++;• while (a[j]>x) j--;

Page 31: Thơ tình của PusKin

• if(i<=j)

• { hoanvi(a[i],a[j]);

• i++;j--;

• }

• }while(i<j);

• if (l<j) Quick_sort(a,l,j);

• if (i<r) Quick_sort(a,i,r); }

Page 32: Thơ tình của PusKin

Chú ýChú ý

• Trong C++ có lệnh :• do• câu lệnh;• while (điều kiện);• Câu lệnh này về cơ bản giống với lệnh

Repeat ….. Until trong pascal nhưng lệnh này khác với repeat …until là nếu điều kiện đúng thì làm tiếp làm cho đến khi sai thì thoát

Page 33: Thơ tình của PusKin

Bài tậpBài tập

• Sắp xếp dãy sau theo thứ tự tăng dần

• 12 11 9 10 8 7

Page 34: Thơ tình của PusKin

Giải bài tậpGiải bài tập

11 9 10 8 712

L=0 R=5

Page 35: Thơ tình của PusKin

Giải bài tậpGiải bài tập

11 9 10 8 127

L=0 R=5

Page 36: Thơ tình của PusKin

Giải bài tậpGiải bài tập

8 9 10 11 127

L=0 R=5

Page 37: Thơ tình của PusKin

Giải bài tậpGiải bài tập

• Ta có hai dãy con

8 9 10 11 127

L=0 R=3R=1 L=0

Page 38: Thơ tình của PusKin

Giải bài tậpGiải bài tập

• Dãy được sắp xếp xong

8 9 10 11 127

Page 39: Thơ tình của PusKin

Bài tập về nhàBài tập về nhà

• Bài 1: sắp xếp dãy sau theo thứ tự tăng dần

12 2 8 5 1 6 4 15

Bài 2: hãy làm lại bài tập trên khi thay cụm từ “tăng dần” bằng” giảm dần “

Page 40: Thơ tình của PusKin

Đặt vấn đềĐặt vấn đề

• Theo bạn độ phức tạp của thuật toán phụ thuộc vào điều gì?

• Bạn hãy thử cho biết trường hợp xấu nhất và tốt nhất của thuật toán?và hãy cố gắng giải thích?

Page 41: Thơ tình của PusKin

Đánh giá thuật toánĐánh giá thuật toán

• Độ phức tạp của thuật toán phụ thuộc vào việc chọn mốc

• Trường hợp tốt nhất của thuật toán là chọn được phần tử median(phần tử lớn hơn nửa số phần tử của mảng và nhỏ hơn hoặc bằng nửa số phần tử còn lại)

• Trường hợp xấu nhất là chọn trúng phần tử cực đại hoặc cực tiểu của mảng

Page 42: Thơ tình của PusKin

Độ phức tạp của thuật toánĐộ phức tạp của thuật toán

Trường hợp Độ phức tạp

Tốt nhất n*log(n)

Trung bình n*log(n)

Xấu nhất n bình phương

Page 43: Thơ tình của PusKin

Lời kếtLời kết

• Thuật toán sắp xếp nhanh rõ ràng đã giúp cho việc sắp xếp của chúng ta nhanh hơn nhưng nó vẫn còn nhược điểm

• Do vậy chúng ta sẽ tiếp tục nghiên cứu những thuật toán tiếp theo để tìm ra thuật toán tối ưu hơn

• Bài báo cáo đến đây là hết, chúc các bạn có một ngày cuối tuần vui vẻ