1 / 28

Cấu Trúc Dữ Liệu Giải Thuật

Cấu Trúc Dữ Liệu Giải Thuật. YNT HoàNT. Giải thuật Giải thuật sắp xếp Giải thuật tìm kiếm. Day 1. Đơn vị cấu trúc. Cấu trúc dữ liệu. Bài toán Lựa chọn GT. Giải thuật. Bài toán Lựa chọn GT. Giải thuật. Selection Sort Bubble Sort Quick Sort. Sắp xếp (sorting).

clodia
Download Presentation

Cấu Trúc Dữ Liệu Giải Thuật

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. CấuTrúcDữLiệuGiảiThuật YNT HoàNT

  2. Giảithuật • Giảithuậtsắpxếp • Giảithuậttìmkiếm Day 1

  3. Đơnvịcấutrúc Cấutrúcdữliệu

  4. Bàitoán • Lựachọn GT Giảithuật

  5. Bàitoán • Lựachọn GT Giảithuật

  6. Selection Sort • Bubble Sort • Quick Sort Sắpxếp (sorting)

  7. selectionsort(data[]) for i = 0 todata.length-2 select the smallest element amongdata[i] to data[data.length-1]; swap it withdata[i]; Selection Sort

  8. Selection Sort

  9. public void bubblesort(int[] data) { for (inti = 0; i < data.length-1; i++) for (int j = data.length-1; j > i; --j) if (data[j] < data[j-1]) swap(data,j,j-1); Bubble Sort

  10. Bubble Sort

  11. do{ while (k[i] < pivot) i++; while (k[j] > pivot) j--; if (i<=j){ swap(k,i,j); i++; j--; } } while (i >= j); Partition(L,j); Partition(i,H); } void Partition(int *k, int L, int H){ inti,j; int pivot; if (L >= H) return; pivot = k[(L+H)/2]; i = L; j = H; Link Quick Sort

  12. Tuyếntính : Linear Search Tìmkiếm • For each item in the list: • if that item has the desired value, • return the item's location. • Return Λ.

  13. Nhịphân: Binary Search Tìmkiếm • while (first <= last) { • intmid = (first + last) / 2; // compute mid point. • if (key > sortedArray[mid]) first = mid + 1; • else if (key < sortedArray[mid]) last = mid - 1; • else return mid; // found it. return position ///// • } • return -1;

  14. In ramànhình, tấtcảcácsốnguyêncó 4 chữsốđượctạotừcácsố 1,2,3,4 Bàitoán

  15. method Try(i) • For (mọI giá trị V có thể gán cho x[i]) • thử cho x[i] = V • if (x[i] là phần tử cuối cung) • <thông báo kết quả vừa tìm đc> • Else • Ghi nhận x[i] đãnhận gtriV //optional • Try(i+1) // gọi đệ quy chọn tiếp x[i+1] • BỏGhi nhận x[i] đãnhận gtriV //optional • End For • end method Vétcạn

  16. Đệquy + quay lui(Vétcạn) • Ápdụngvàobàitoán.

  17. BFS • DFS DAY 3

  18. ĐỒ THỊ

  19. ĐỒ THỊ

  20. Ma trậnkề (Adjacency matrix) • Danhsáchcạnh (Edge list) • Danhsáchkề (Adjacency List) BIỂU DIỄN ĐỒ THỊ

  21. Ma trậnkề(Adjacency matrix)

  22. Danhsáchcạnh(Edge list)

  23. Danhsáchkề (Adjacency List)

  24. TÌM KIẾM TRÊN ĐỒ THỊ • Depth First Search • Breadth First Search

  25. Depth First Search

  26. Breadth First Search

  27. Breadth First Search

  28. 1 procedure BFS(G,v): 2 create a queue Q 3 enqueue v onto Q 4 mark v 5 while Q is not empty: 6 t ← Q.dequeue() for all vertex near t do 11 if o is not marked: 12 mark o 13 enqueue o onto Q Breadth First Search

More Related