Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Cấu trúc dữliệu và giải   thuật
Tìm kiếm   Merge                   Quick Sortnhị phân    Sort
• Tìm kiếm trên   Tìm     mảng tăng dần.kiếm nhị  phân   • 30 lần tìm kiếm           cho 1 tỉ dữ liệu.      Merge      • T...
Minh Họa Thuật Toán Tìm Nhị Phân
Minh Họa Thuật Toán Tìm Nhị PhânTìm thấy 2 tại vị trí 1                              X=2      L                       M   ...
Minh Họa Thuật Toán Tìm Nhị Phân (tt)                             X=-1      L                      M                      ...
Minh Họa Thuật Toán Tìm Nhị Phân (tt)Cho mảng sau: 2 2 2 3 7 8 9 10 15.1. Tìm phần tử k=15.2. Tìm phần tử k=2 và cho biết ...
Merge Sort – thuật toán
Merge Sort – Ví Dụ k=1Phân phối luân phiên  0     1    2    3     4   5    6   7  12    2    8    5     1   6    4   15
Merge Sort – Ví Dụk = 1             Phân phối luân phiên 0       1    2    3    4    5    6    712       2    8    5    ...
Merge Sort – Ví DụTrộn từng cặp đường chạy0    1    2    3    4    5    6   712   8    1    42    5    6    15
Merge Sort – Ví Dụk = 1            Trộn từng cặp đường chạy0        1    2      3    4    5    6    712   8        1    ...
Merge Sort – Ví Dụk = 2            Phân phối luân phiên2    12       5    8    1    6    4   150        1    2    3    4...
Merge Sort – Ví Dụk = 2            Trộn từng cặp đường chạy0        1    2      3    4    5    6    72    12       1    ...
Merge Sort – Ví Dụk = 2             Trộn từng cặp đường chạy 0       1    2        3    4   5    6    7 2   12        1 ...
Merge Sort – Ví Dụk = 4            Phân phối luân phiên2    5        8    12   1    4    6   150        1    2    3    4...
Merge Sort – Ví Dụk = 4         Trộn từng cặp đường chạy 0       1    2    3    4    5    6   7 2   5        8    12 1  ...
Merge Sort – Ví Dụk = 4         Trộn từng cặp đường chạy 0       1    2    3    4    5    6   7 2   5        8    12 1  ...
Merge Sort – Ví Dụk = 80        1    2    3    4    5    6    71    2        4    5    6    8    12   15
Merge Sort – Ví Dụ1   2    3    4    5    6    7    81   2    4    5    6    8    12   15
Merge Sort – Ví DụCho ví dụ
Quick Sort1. X là phần tử nằm giữa mảng.2. Tìm các phần tử bên trái X mà lớn hơn X, đưa các phần tử nàyvề phía bên phải X....
Quick Sort
Quick Sort – Ví Dụ • Cho dãy số a:      12      2        8       5       1   6     4      15Phân hoạch đoạn l =0, r = 7:  ...
Quick Sort – Ví Dụ 4          2     8    5   1     6     12     15     i=0                                       j=6l=0   ...
Quick Sort – Ví Dụ• Phân hoạch đoạn l = 0, r = 2:4     2      1     5     8        6   12   15l=0        r =3i=0         j=2
Quick Sort – Ví Dụ• Phân hoạch đoạn l =4, r = 7:1     2     4     5      8        6     12    15                         l...
Quick Sort – Ví Dụ• Phân hoạch đoạn l =6, r = 7:1     2     4     5      6       8   12   15
Quick Sortvoid QuickSort(int a[], int left, int right){ int i, j, x;   x = a[(left+right)/2];   i = left; j = right;   do ...
Quick Sort – Ví Dụ Phân hoạch đọan [0,7]  i                                  j  0    1    2    3    4    5    6    7 12  ...
Quick Sort – Ví Dụ Phân hoạch đọan [0,7]                 X   5        i                    j  0     1    2       3   4   ...
Quick Sort – Ví Dụ Phân hoạch đọan [0,2]             j         i  0     1    2    3    4    5    6     7  4     2    1   ...
 Phân hoạch đọan [0,2]  i          j  0     1    2     3   4   5   6    7  4     2    1     5   8   6   12   15        X ...
Quick Sort – Ví Dụ Phân hoạch đọan [4,7]                     i               j 0    1    2    3    4     5   6     7 1   ...
Quick Sort – Ví Dụ Phân hoạch đọan [5,7]                      j     i  0    1    2    3    4     5   6     7  1    2    4...
Quick Sort – Ví Dụ Phân hoạch đọan [5,7]                           i           j 0     1    2   3    4     5     6     7 ...
Quick Sort – Ví Dụ        Quick Sort – Ví Dụ0   1      2   3    4   5     6    71   2      4   5    6   8     12   15
Quick Sort – Ví DụCho ví dụ
WinStore.vn - Cấu trúc dữ liệu và giải thuật buổi 1
WinStore.vn - Cấu trúc dữ liệu và giải thuật buổi 1
WinStore.vn - Cấu trúc dữ liệu và giải thuật buổi 1
WinStore.vn - Cấu trúc dữ liệu và giải thuật buổi 1
WinStore.vn - Cấu trúc dữ liệu và giải thuật buổi 1
Upcoming SlideShare
Loading in …5
×

WinStore.vn - Cấu trúc dữ liệu và giải thuật buổi 1

627 views

Published on

Published in: Technology
  • Be the first to comment

WinStore.vn - Cấu trúc dữ liệu và giải thuật buổi 1

  1. 1. Cấu trúc dữliệu và giải thuật
  2. 2. Tìm kiếm Merge Quick Sortnhị phân Sort
  3. 3. • Tìm kiếm trên Tìm mảng tăng dần.kiếm nhị phân • 30 lần tìm kiếm cho 1 tỉ dữ liệu. Merge • Thuật toán sắp Sort xếp nhanh. • Thuật toán sắp Quick xếp nhanh Sort nhất.
  4. 4. Minh Họa Thuật Toán Tìm Nhị Phân
  5. 5. Minh Họa Thuật Toán Tìm Nhị PhânTìm thấy 2 tại vị trí 1 X=2 L M R 1 2 4 6 7 9 10 0 1 2 3 4 5 6
  6. 6. Minh Họa Thuật Toán Tìm Nhị Phân (tt) X=-1 L M R 1 2 4 6 7 9 10 0 1 2 3 4 5 6L=0R=-1 => không tìm thấy X=-1
  7. 7. Minh Họa Thuật Toán Tìm Nhị Phân (tt)Cho mảng sau: 2 2 2 3 7 8 9 10 15.1. Tìm phần tử k=15.2. Tìm phần tử k=2 và cho biết số 2 được tìm thấy nằm ở đâu trong mảng.
  8. 8. Merge Sort – thuật toán
  9. 9. Merge Sort – Ví Dụ k=1Phân phối luân phiên 0 1 2 3 4 5 6 7 12 2 8 5 1 6 4 15
  10. 10. Merge Sort – Ví Dụk = 1 Phân phối luân phiên 0 1 2 3 4 5 6 712 2 8 5 1 6 4 15
  11. 11. Merge Sort – Ví DụTrộn từng cặp đường chạy0 1 2 3 4 5 6 712 8 1 42 5 6 15
  12. 12. Merge Sort – Ví Dụk = 1 Trộn từng cặp đường chạy0 1 2 3 4 5 6 712 8 1 42 5 6 15
  13. 13. Merge Sort – Ví Dụk = 2 Phân phối luân phiên2 12 5 8 1 6 4 150 1 2 3 4 5 6 7
  14. 14. Merge Sort – Ví Dụk = 2 Trộn từng cặp đường chạy0 1 2 3 4 5 6 72 12 1 65 8 4 15
  15. 15. Merge Sort – Ví Dụk = 2 Trộn từng cặp đường chạy 0 1 2 3 4 5 6 7 2 12 1 6 5 8 4 15
  16. 16. Merge Sort – Ví Dụk = 4 Phân phối luân phiên2 5 8 12 1 4 6 150 1 2 3 4 5 6 7
  17. 17. Merge Sort – Ví Dụk = 4 Trộn từng cặp đường chạy 0 1 2 3 4 5 6 7 2 5 8 12 1 4 6 15
  18. 18. Merge Sort – Ví Dụk = 4 Trộn từng cặp đường chạy 0 1 2 3 4 5 6 7 2 5 8 12 1 4 6 15
  19. 19. Merge Sort – Ví Dụk = 80 1 2 3 4 5 6 71 2 4 5 6 8 12 15
  20. 20. Merge Sort – Ví Dụ1 2 3 4 5 6 7 81 2 4 5 6 8 12 15
  21. 21. Merge Sort – Ví DụCho ví dụ
  22. 22. Quick Sort1. X là phần tử nằm giữa mảng.2. Tìm các phần tử bên trái X mà lớn hơn X, đưa các phần tử nàyvề phía bên phải X.3. Tìm các phần tử bên phải X mà nhỏ hơn X, đưa các phần tử nàyvề bên trái X. Mảng chính sẽ phân hoạch thành 3 phần: • Phần 1: Gồm các phần tử có giá trị bé hơn x • Phần 2: Gồm các phần tử có giá trị bằng x • Phần 3: Gồm các phần tử có giá trị lớn hơn x Lặp lại các bước trên với phần 1 và phần 2
  23. 23. Quick Sort
  24. 24. Quick Sort – Ví Dụ • Cho dãy số a: 12 2 8 5 1 6 4 15Phân hoạch đoạn l =0, r = 7: x = a[3] = 5 12 2 8 5 1 6 4 15 l=0 r=7
  25. 25. Quick Sort – Ví Dụ 4 2 8 5 1 6 12 15 i=0 j=6l=0 r=7 4 2 8 5 1 6 12 15 i=1 i=2l=0 j=3 j=4 j=5 r=7
  26. 26. Quick Sort – Ví Dụ• Phân hoạch đoạn l = 0, r = 2:4 2 1 5 8 6 12 15l=0 r =3i=0 j=2
  27. 27. Quick Sort – Ví Dụ• Phân hoạch đoạn l =4, r = 7:1 2 4 5 8 6 12 15 l=4 r =7 i=4 j=6 j=6 j=71 2 4 5 i=6 4 8 12 15 l=4 r =7
  28. 28. Quick Sort – Ví Dụ• Phân hoạch đoạn l =6, r = 7:1 2 4 5 6 8 12 15
  29. 29. Quick Sortvoid QuickSort(int a[], int left, int right){ int i, j, x; x = a[(left+right)/2]; i = left; j = right; do { while(a[i] < x) i++; while(a[j] > x) j--; if(i <= j) { Swap(a[i],a[j]); i++ ; j--; } } while(i <= j); if(left<j) QuickSort(a, left, j); if(i<right) QuickSort(a, i, right);}
  30. 30. Quick Sort – Ví Dụ Phân hoạch đọan [0,7] i j 0 1 2 3 4 5 6 7 12 2 8 5 5 1 6 4 15left X righ t
  31. 31. Quick Sort – Ví Dụ Phân hoạch đọan [0,7] X 5 i j 0 1 2 3 4 5 6 7 4 2 8 5 1 6 12 15 left righ t
  32. 32. Quick Sort – Ví Dụ Phân hoạch đọan [0,2] j i 0 1 2 3 4 5 6 7 4 2 1 5 8 6 12 15 left righ t
  33. 33.  Phân hoạch đọan [0,2] i j 0 1 2 3 4 5 6 7 4 2 1 5 8 6 12 15 X left righ t
  34. 34. Quick Sort – Ví Dụ Phân hoạch đọan [4,7] i j 0 1 2 3 4 5 6 7 1 2 4 5 8 6 12 15 X left righ t
  35. 35. Quick Sort – Ví Dụ Phân hoạch đọan [5,7] j i 0 1 2 3 4 5 6 7 1 2 4 5 6 8 12 15 left righ t
  36. 36. Quick Sort – Ví Dụ Phân hoạch đọan [5,7] i j 0 1 2 3 4 5 6 7 1 2 4 5 6 8 12 15 left righ t
  37. 37. Quick Sort – Ví Dụ Quick Sort – Ví Dụ0 1 2 3 4 5 6 71 2 4 5 6 8 12 15
  38. 38. Quick Sort – Ví DụCho ví dụ

×