1 / 43

Thơ tình của PusKin

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.

wade-barton
Download Presentation

Thơ tình của PusKin

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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

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

  3. Thuật toán sắp xếp nhanh(tiếp 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

  4. Ý 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

  5. 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?

  6. 10 7 8 4 5 6 L=0 R=5

  7. 6 7 8 4 5 10 L=0 R=5

  8. 6 7 5 4 8 10 L=0 R=5

  9. Ta được hai dãy con 6 7 5 4 8 10 L=0 R=3

  10. Ta đươc hai dãy con 6 7 5 4 8 10 L=0 R=3

  11. Ta đươc hai dãy con 6 4 5 7 8 10 L=0 R=2

  12. Ta được hai dãy con 4 6 5 7 8 10 L=0 R=1

  13. Dãy được sắp xếp xong 4 5 6 7 8 10

  14. Ví 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?

  15. Phâ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

  16. Lời giải 6 8 7 8 9 10 8 11 R=7 L=0

  17. Lời giải 11 8 7 8 9 10 8 6 R=7 L=0

  18. Lời giải 11 8 7 8 9 10 8 6 R=7 L=0

  19. Lời giải 11 8 10 8 9 7 8 6 R=7 L=0

  20. Lời giải 11 8 10 9 8 7 8 6 L=0 R=3 L=0 R=2

  21. Lời giải • Ta được hai dãy con 11 8 10 9 8 7 8 6 L=0 R=3 L=0 R=2

  22. Lời giải • Ta được hai dãy con 11 9 10 8 8 8 7 6 L=0 R=3 L=0 R=2

  23. Lời giải • Ta được hai dãy con 11 9 10 8 8 8 7 6 L=0 R=2

  24. Lời giải • Dãy đươc sắp xếp xong 11 10 9 8 8 8 7 6

  25. Giải thuật phân hoạch(cho mãng a[l]..a[r]) • 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]);

  26. 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

  27. Giải thuật sắp xếp nhanh(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]

  28. Cà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;

  29. 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;

  30. 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--;

  31. 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); }

  32. 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

  33. Bài tập • Sắp xếp dãy sau theo thứ tự tăng dần • 12 11 9 10 8 7

  34. Giải bài tập 11 9 10 8 7 12 R=5 L=0

  35. Giải bài tập 11 9 10 8 12 7 R=5 L=0

  36. Giải bài tập 8 9 10 11 12 7 R=5 L=0

  37. Giải bài tập • Ta có hai dãy con 8 9 10 11 12 7 L=0 R=1 L=0 R=3

  38. Giải bài tập • Dãy được sắp xếp xong 8 9 10 11 12 7

  39. 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 “

  40. Đặ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?

  41. Đá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

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

  43. Lờ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ẻ

More Related