SlideShare a Scribd company logo
PriorityQueue
MeaningfulTransitions
KháiniệmQueue
 Hàng đợi (Queue) là một cấu trúc dữ liệu dùng
để chứa các đối tượng làmviệc theo cơ chế FIFO
(First In First Out)
 Việc thêm một đối tượng luôn diễn ra ở cuối
hàng đợi và một phần tử luôn được lấy ra từ đầu
hàng đợi.
`QueueVídụ:
 Hàng đợi (Queue) là một cấu trúc dữ liệu dùng
để chứa các đối tượng làmviệc theo cơ chế FIFO
(First In First Out)
 Việc thêm một đối tượng luôn diễn ra ở cuối
hàng đợi và một phần tử luôn được lấy ra từ đầu
hàng đợi.
ThaotáctrênQueue
TrênQueuecócác thao tácsau:
Thêmphần tử vào cuốiQueue(Push)
Xóa phần tử đầu Queue(Pop)
Front
Rear
ThaotáctrênQueue
Thêmphần tử vào cuốiQueue(Push)
Xóa phần tử đầu Queue (Pop)
XâydựngQueue
 Nếuxây dựng Queuebằngmảng thì sẽ nhận thấy rằng:
- Khi xoá một phần tử front tăng lên 1, khi thêm một
phần tử rear tăng lên 1,đến một lúc nào đó ta không
thể thêm vào hàng được nữa (rear=maxlength-1) dù
mảng còn nhiều chỗ trống (các vị trí trước front)
→Trường hợp này ta gọi là hàng bị tràn
 Để khắc phục điều này chúng ta có thể coi mảng
đó như 1 mảng với các phân tử được xếp vòng tròn
để việc push và pop dễ dànghơn.
Queue Circular(Hàng đợi vòng)
KháiniệmPriorityQueue
 Hàng đợi ưutiên (Priority Queue)là một kiểu dữ liệu trừu tượng tập hợp
đặc biệt, trong đó mỗi phần tử cómột độưu tiên nàođó.
 Hàng đợi ưutiên là cấutrúc dữ liệu tổng hợpcủa stack và queue.
 Hàng đợi ưutiên không theo cơ chế FIFO.
 Độ ưu tiên của phần tử thường là một số, theo đó, phần tử cóđộưu tiên
nhỏ nhất sẽ được ‘ưu tiên’ nhất.
 Ví dụ tại bệnh viện, cácbệnh nhân xếphàng để chờ phục vụnhưng không
phải người đếntrước thì được phục vụ trước mà họ cóđộ ưu tiên theo tình
trạng khẩn cấpcủa bệnh.
PriorityQueue
 Mỗi nút gồm:
+Value (Giá trị)
+ Priority (Độ ưu tiên)
 Chẳng hạn:
 Ta thấy rằng:nút cóđộ ưutiên cao nhất sẽ đượclấy ra trước trong queue
CàiđặtPriorityQueue
CàiđặtPriorityQueue
CàiđặtPriorityQueue
 Ta không thể cài đặt Priority Queue bằng bảng băm vì bảng băm không
thuận lợi trong việc tìm kiếm phần tử nhỏ nhất
→Nên cách cài đặt Priority Queue khá thuận lợi đó là cài đặt bằng cây có
thứ tự từng phần (TreeHeap).
Câycàiđặtbằngmảng
Nút mẹ thứ i gồm:
Nút conbên trái: = 2*i+ 1
Nút conbên phải: =2*i + 2
Nút mẹ cuối cùngtrong cây: (n-1)/2 vớin là sốlượng phần tử
 Giả sử ta cónút thứ i trong mảng:
-> Nút mẹ của nút này là (i-1)/2
 Các nút mẹ trong cây: từ i=0-> (n-1)/2
Câycàiđặtbằngmảng
Ví dụvềcâycài bằngmảng:
A[0]
A[9]
A[4]
A[5]
A[2]
A[3]
A[6]
A[8]A[7]
A[1]
A[0] A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8] A[9]
TreeHeap
Địnhnghĩa cây cóthứ tự từng phần ( Treeheap)
Cây cóthứ tự từng phần là cây nhị phân mà giá trị tại mỗi nút mẹ có1 quan
hệ thứ tự nào đó với2 nút con của nó.
Có 2loại cây heap thường dùng: Max-Heap , Min-Heap
Max-Heap:cây nhị phân mà giá trị tại mỗi nút mẹ đều lớn hơn
hoặc bằng giá trị của hai con.
Min-Heap: cây nhị phân mà giá trị tại mỗi nút mẹ đều nhỏ hơn
hoặc bằng giá trị của hai con.
TreeHeap
3
9
8
9
9
6
10
1610
5
Min-Heap
Nhậnxét
 Trêncây cóthứ tự từng phần, nút gốc là nút cógiá trị nhỏ nhất
 Từ nhận xét này, ta thấy cóthể sử dụng cây cóthứ tự từng phần để cài
đặt hàng đợiưu tiên
 Trongđómỗi phần tử được biểu diễn bởi một nút trên câymà độ ưu
tiên của phần tử là giá trị của nút
CácthaotáctrênTreeHeap
Vì TreeHeap dùng để biểu diễn Priority Queue nên sẽ cócácthao tác tương tự
Queue:
-Tìm phần tử lớnnhất/nhỏ nhất (Find Min/Max)
- Xóa phần tử đầu tiên của cây (RemoveMiin)
- Thêm phầntử vào cuốicây (Insert)
FindMin
3
9
8
9
9
6
10
1610
5
Min-Heap
Dễ dàng nhận thấy rằngNút gốc của cây chính là Max/ Min
Remove
Chiếnlược: Xét cây Min-Heap
Lấynútlá tạimứccaonhấtvà nằmbênphảinhấtthaythếchonútgốc.
 Như vậy cây vẫn "cân bằng" nhưng nó không còn đảm bảo tính thứ tự
từng phần.
Để xây dựng lại cây từng phần ta thực hiện việc "đẩy nút này xuống dưới".
Tức là ta đổi chổ nó với nút con nhỏ nhất của nó, nếu nút con này có độ
ưu tiên nhỏ hơn nó.
Đâylà 1 quátrìnhđệquy.Quá trình đó sẽ dừng khi đã nổi lên đến nút gốc hoặc
cây thỏa mãn tính chất có thứ tự từng phần.
RemoveMin
Giải thuật: Xétcây Min-Heap
 Bước 1:Tathaythếnútgốcbằngnútlá cuối cùng trongcây
 Bước 2: Taxéttừnútgốc:
Nếugiátrịnúttráinhỏhơn nútphảivà nhỏhơn cảnútgốcthì tađổichỗnút
tráivới nútgốc.
Nếugiá trịnútphảinhỏhơn núttráivà nhỏhơn cảnútgốcthì tađổichỗnút
phảivới nútgốc.
 Bước 3:
Sau khi đẩy nút gốc xuống một con nào đó (trái hoặc phải) thì
phải tiếp tục xét con đó xem có phải đẩy xuống nữa hay không ?
Quá trình đẩyxuốngsẽ kết thúckhiđã đẩyđến nútlà hoặc cây thỏamãn tính chấtcó thứ
tự từng phần
RemoveMin
3
5
9
8 9
9
6 10
1610
Min Heap
Demo
Insert
Chiến lược:
Để thêm một phần tử vào cây ta bắt đầu bằng việc tạo một nút lá mới nằm
ở mức cao nhất.
Nếu tất cả các lá ở mức cao nhất đều đang có mặt thì ta thêm nút mới vào
bên trái nhất ở mức mới.
->Khinàycâybịmấtđi tínhchấtthứtựtoànphần
Tiếp đó ta cho nút này "nổi dần lên" bằng cách đổi chổ nó với nút mẹ của
nó nếu nút mẹ có độ ưu tiên nhỏ hơn.
Đâycũng là 1 quátrìnhđệquy.Quá trình đó sẽ dừng khi đã nổi lên đến nút gốc
hoặc cây thỏa mãn tính chất có thứ tự từng phần.
Insert
Thuậttoán:Xét vớiMin-Heap
 Bước 1:
Tathêm nútcầnthêm vàocâyởmứccuối cùng củacây.
 Bước 2:
Tasosánhnútnàyvới nútmẹcủanó:
Nếu giá trịnútnàynhỏhơn nútmẹthì đổichỗ2 nút.
Ngược lạithì kếtthúcvì câyđãthỏathứtựtoànphần.
 Bước 3:
Nếu nhưđổi chỗ2 núttaphảixéttiếpnútmẹvừa đổi.
XétlạiBước 2 với Nútmẹ vừa đổichỗ.
Insert
3
5
9
8 9
9
6 10
1610 4
Min Heap
Demo
Xây dựng Tree Heap
Để việc xây dựng được hiệu quả, ta phải cố
gắng sao cho cây tương đối ‘cân bằng’.
Mọi nút trung gian (trừ nút là cha của nút lá) đều
có hai con
Đối với các nút mẹ của nút là có thể chỉ có một
con và trong trường hợp đó ta quy ước là con trái
(không có con phải).
XâydựngTreeHeap
Có 2 cách xâydựng Tree Heap:
Rebuild (Xây dựng từ một câykháckhông có thứ tự).
Build (Xây dựng trực tiếp từ mảng giá trị cho trước) .
XâydựngTreeHeap
Build:
Đầutiên:takhởi tạocâyrỗng
Sauđó:TaápdụngthuậttoánInsertđểthêmtừngnútvàocây.
ReBuild:
Taphảixâydựngcâyhiện tạisaochocâyđócóthứtựtoànphần.
Tacầnphảixéttừnútmẹthứ0 => nútmẹ cuốicùng (n-1)/2.
HeapSort
Chiến lược: Dựa vào tính chất Tree Heap để sắp xếp lại mảng.
Nhận xét ta thấy rằng:
+ Nút gốc của min-Heap sẽ nhỏ nhất trong cây.
+ Nếu ta lấy nút gốc ra và đưa vào 1 mảng mới ta sẽ được phần
tử nhỏ nhất
 Vậy ta lại lấy phần tử nhỏ tiếp theo khi đã loại bỏ phần tử nhỏ
nhất khỏi cây đưa vào mảng mới ta sẽ được mảng đc sắp xếp
tăng dần
HeapSort
Thuật toán:
+Bước 1: Ta xây dựng Tree Heap từ mảng ban đầu.(Rebuild hoặc Build)
+Bước 2: Ta lấy phần tử nút gốc ra khỏi cây (Phần tử a[0])
+Để lấy phần tử nút gốc ra khỏi cây ta chỉ cần đổi chỗ nút gốc vs nút là cuối
cùng ( Đổi chỗ a[0] với a[n-1])
+Bước 3:
 Ta xây dựng lại cây với n-1 phần tử.
Ta áp dụng thuật toán RemoveMin để cân bằng lại cây
 Lặp lại bước 2 khi vẫn còn phần tử trong mảng.
Sau khi kết thúc:Ta thấy rằng mảng sẽ được sắp xếp giảm dần.
ỨngdụngPriorityQueue
Ứng dụng
– Quản lý băng thông
- Thuật toán Huffman
- Thuật toán Dijkstra là một thuật toán giải quyết bài toán đường đi ngắn nhất dùng
trong công nghệ Hệ thống định vị toàn cầu (GPS)
- Dùng các bài toán có nhiều lựa chọn để xét độ ưu tiên để đạt hiểu quá tối ưu nhất.
Thankyou!
Question&Answer

More Related Content

What's hot

Đề tài: Xây dựng hệ thống quản lý kinh doanh cho công ty dược
Đề tài: Xây dựng hệ thống quản lý kinh doanh cho công ty dượcĐề tài: Xây dựng hệ thống quản lý kinh doanh cho công ty dược
Đề tài: Xây dựng hệ thống quản lý kinh doanh cho công ty dược
Dịch vụ viết bài trọn gói ZALO: 0909232620
 
các phân phối xác xuất thường gặp
các phân phối xác xuất thường gặpcác phân phối xác xuất thường gặp
các phân phối xác xuất thường gặpKhoa Nguyễn
 
Chuyên đề 5 thống kê
Chuyên đề 5 thống kêChuyên đề 5 thống kê
Chuyên đề 5 thống kê
phamchidac
 
Cây và cây nhị phân
Cây và cây nhị phân Cây và cây nhị phân
Cây và cây nhị phân
kikihoho
 
Ctdl c4-cay
Ctdl c4-cayCtdl c4-cay
Ctdl c4-cayhiep0109
 
Đè tài: Phân tích thiết kế hệ thống quản lí phòng trọ, HAY
Đè tài: Phân tích thiết kế hệ thống quản lí phòng trọ, HAYĐè tài: Phân tích thiết kế hệ thống quản lí phòng trọ, HAY
Đè tài: Phân tích thiết kế hệ thống quản lí phòng trọ, HAY
Dịch vụ viết thuê Khóa Luận - ZALO 0932091562
 
Cây nhị phân
Cây nhị phânCây nhị phân
Cây nhị phân
Hoàng Ngô Việt
 
Kỹ năng lắng nghe
Kỹ năng lắng ngheKỹ năng lắng nghe
Kỹ năng lắng nghe
Cuộc Sống Đúng Nghĩa
 
[Toán kinh tế ứng dụng] Bài 1: Hàm tuyến tính
[Toán kinh tế ứng dụng] Bài 1: Hàm tuyến tính[Toán kinh tế ứng dụng] Bài 1: Hàm tuyến tính
[Toán kinh tế ứng dụng] Bài 1: Hàm tuyến tính
Nguyen Ngoc Binh Phuong
 
Bai giang-ctdl
Bai giang-ctdlBai giang-ctdl
Bai giang-ctdlPhong Vân
 
Giai nhanh phuong phap tinh
Giai nhanh phuong phap tinhGiai nhanh phuong phap tinh
Giai nhanh phuong phap tinh
Pham Huy
 
Công Thức Vật Lý
Công Thức Vật LýCông Thức Vật Lý
Công Thức Vật Lý
Nguyễnn Quý-i
 
đạI lượng ngẫu nhiên và phân phối xác suất.image.marked
đạI lượng ngẫu nhiên và phân phối xác suất.image.markedđạI lượng ngẫu nhiên và phân phối xác suất.image.marked
đạI lượng ngẫu nhiên và phân phối xác suất.image.markedHọc Huỳnh Bá
 
04 chuong 4 - databinding
04   chuong 4 - databinding04   chuong 4 - databinding
04 chuong 4 - databinding
truong le hung
 
Mot so ham do hoa trong c c++
Mot so ham do hoa trong c c++Mot so ham do hoa trong c c++
Mot so ham do hoa trong c c++ANHMATTROI
 
Trac nghiem dap an
Trac nghiem dap anTrac nghiem dap an
Trac nghiem dap anTrí Ibanez
 
Khóa luận tốt nghiệp Phân tích thiết kế hệ thống thông tin quản lý ký túc xá ...
Khóa luận tốt nghiệp Phân tích thiết kế hệ thống thông tin quản lý ký túc xá ...Khóa luận tốt nghiệp Phân tích thiết kế hệ thống thông tin quản lý ký túc xá ...
Khóa luận tốt nghiệp Phân tích thiết kế hệ thống thông tin quản lý ký túc xá ...
Duc Dinh
 
Cơ sở dữ liệu nâng cao
Cơ sở dữ liệu nâng caoCơ sở dữ liệu nâng cao
Cơ sở dữ liệu nâng cao
Minh Trí Lê Viết
 
Chia subnetmask
Chia subnetmaskChia subnetmask
Chia subnetmask
ptquang160492
 

What's hot (20)

Đề tài: Xây dựng hệ thống quản lý kinh doanh cho công ty dược
Đề tài: Xây dựng hệ thống quản lý kinh doanh cho công ty dượcĐề tài: Xây dựng hệ thống quản lý kinh doanh cho công ty dược
Đề tài: Xây dựng hệ thống quản lý kinh doanh cho công ty dược
 
các phân phối xác xuất thường gặp
các phân phối xác xuất thường gặpcác phân phối xác xuất thường gặp
các phân phối xác xuất thường gặp
 
Chuyên đề 5 thống kê
Chuyên đề 5 thống kêChuyên đề 5 thống kê
Chuyên đề 5 thống kê
 
Cây và cây nhị phân
Cây và cây nhị phân Cây và cây nhị phân
Cây và cây nhị phân
 
Ctdl c4-cay
Ctdl c4-cayCtdl c4-cay
Ctdl c4-cay
 
Đè tài: Phân tích thiết kế hệ thống quản lí phòng trọ, HAY
Đè tài: Phân tích thiết kế hệ thống quản lí phòng trọ, HAYĐè tài: Phân tích thiết kế hệ thống quản lí phòng trọ, HAY
Đè tài: Phân tích thiết kế hệ thống quản lí phòng trọ, HAY
 
Cây nhị phân
Cây nhị phânCây nhị phân
Cây nhị phân
 
Kỹ năng lắng nghe
Kỹ năng lắng ngheKỹ năng lắng nghe
Kỹ năng lắng nghe
 
[Toán kinh tế ứng dụng] Bài 1: Hàm tuyến tính
[Toán kinh tế ứng dụng] Bài 1: Hàm tuyến tính[Toán kinh tế ứng dụng] Bài 1: Hàm tuyến tính
[Toán kinh tế ứng dụng] Bài 1: Hàm tuyến tính
 
Bai giang-ctdl
Bai giang-ctdlBai giang-ctdl
Bai giang-ctdl
 
Giai nhanh phuong phap tinh
Giai nhanh phuong phap tinhGiai nhanh phuong phap tinh
Giai nhanh phuong phap tinh
 
Công Thức Vật Lý
Công Thức Vật LýCông Thức Vật Lý
Công Thức Vật Lý
 
đạI lượng ngẫu nhiên và phân phối xác suất.image.marked
đạI lượng ngẫu nhiên và phân phối xác suất.image.markedđạI lượng ngẫu nhiên và phân phối xác suất.image.marked
đạI lượng ngẫu nhiên và phân phối xác suất.image.marked
 
04 chuong 4 - databinding
04   chuong 4 - databinding04   chuong 4 - databinding
04 chuong 4 - databinding
 
Cây Nhị Phân
Cây Nhị PhânCây Nhị Phân
Cây Nhị Phân
 
Mot so ham do hoa trong c c++
Mot so ham do hoa trong c c++Mot so ham do hoa trong c c++
Mot so ham do hoa trong c c++
 
Trac nghiem dap an
Trac nghiem dap anTrac nghiem dap an
Trac nghiem dap an
 
Khóa luận tốt nghiệp Phân tích thiết kế hệ thống thông tin quản lý ký túc xá ...
Khóa luận tốt nghiệp Phân tích thiết kế hệ thống thông tin quản lý ký túc xá ...Khóa luận tốt nghiệp Phân tích thiết kế hệ thống thông tin quản lý ký túc xá ...
Khóa luận tốt nghiệp Phân tích thiết kế hệ thống thông tin quản lý ký túc xá ...
 
Cơ sở dữ liệu nâng cao
Cơ sở dữ liệu nâng caoCơ sở dữ liệu nâng cao
Cơ sở dữ liệu nâng cao
 
Chia subnetmask
Chia subnetmaskChia subnetmask
Chia subnetmask
 

Similar to Thuyết trình Cây Nhị Phân

trac-nghiem-cau-truc-du-lieu-va-giai-thuat.pdf
trac-nghiem-cau-truc-du-lieu-va-giai-thuat.pdftrac-nghiem-cau-truc-du-lieu-va-giai-thuat.pdf
trac-nghiem-cau-truc-du-lieu-va-giai-thuat.pdf
NguynVnTun74
 
02 stack queue
02 stack queue02 stack queue
02 stack queuelanheo04
 
Bài tập CTDL và GT 3
Bài tập CTDL và GT 3Bài tập CTDL và GT 3
Bài tập CTDL và GT 3
Hồ Lợi
 
Bài 6: Các cấu trúc dữ liệu đặc biệt: ngăn xếp, hàng đợi, cây - Giáo trình FPT
Bài 6: Các cấu trúc dữ liệu đặc biệt: ngăn xếp, hàng đợi, cây - Giáo trình FPTBài 6: Các cấu trúc dữ liệu đặc biệt: ngăn xếp, hàng đợi, cây - Giáo trình FPT
Bài 6: Các cấu trúc dữ liệu đặc biệt: ngăn xếp, hàng đợi, cây - Giáo trình FPT
MasterCode.vn
 
Cau truc dl_va_giai_thuat_bai1[1] - copy
Cau truc dl_va_giai_thuat_bai1[1] - copyCau truc dl_va_giai_thuat_bai1[1] - copy
Cau truc dl_va_giai_thuat_bai1[1] - copy
Nguyen Van Hung
 
Bài 5: Các thuật toán sắp xếp và tìm kiếm cơ bản - Giáo trình FPT
Bài 5: Các thuật toán sắp xếp và tìm kiếm cơ bản - Giáo trình FPTBài 5: Các thuật toán sắp xếp và tìm kiếm cơ bản - Giáo trình FPT
Bài 5: Các thuật toán sắp xếp và tìm kiếm cơ bản - Giáo trình FPT
MasterCode.vn
 
Bài tập CTDL và GT 1
Bài tập CTDL và GT 1Bài tập CTDL và GT 1
Bài tập CTDL và GT 1
Hồ Lợi
 

Similar to Thuyết trình Cây Nhị Phân (7)

trac-nghiem-cau-truc-du-lieu-va-giai-thuat.pdf
trac-nghiem-cau-truc-du-lieu-va-giai-thuat.pdftrac-nghiem-cau-truc-du-lieu-va-giai-thuat.pdf
trac-nghiem-cau-truc-du-lieu-va-giai-thuat.pdf
 
02 stack queue
02 stack queue02 stack queue
02 stack queue
 
Bài tập CTDL và GT 3
Bài tập CTDL và GT 3Bài tập CTDL và GT 3
Bài tập CTDL và GT 3
 
Bài 6: Các cấu trúc dữ liệu đặc biệt: ngăn xếp, hàng đợi, cây - Giáo trình FPT
Bài 6: Các cấu trúc dữ liệu đặc biệt: ngăn xếp, hàng đợi, cây - Giáo trình FPTBài 6: Các cấu trúc dữ liệu đặc biệt: ngăn xếp, hàng đợi, cây - Giáo trình FPT
Bài 6: Các cấu trúc dữ liệu đặc biệt: ngăn xếp, hàng đợi, cây - Giáo trình FPT
 
Cau truc dl_va_giai_thuat_bai1[1] - copy
Cau truc dl_va_giai_thuat_bai1[1] - copyCau truc dl_va_giai_thuat_bai1[1] - copy
Cau truc dl_va_giai_thuat_bai1[1] - copy
 
Bài 5: Các thuật toán sắp xếp và tìm kiếm cơ bản - Giáo trình FPT
Bài 5: Các thuật toán sắp xếp và tìm kiếm cơ bản - Giáo trình FPTBài 5: Các thuật toán sắp xếp và tìm kiếm cơ bản - Giáo trình FPT
Bài 5: Các thuật toán sắp xếp và tìm kiếm cơ bản - Giáo trình FPT
 
Bài tập CTDL và GT 1
Bài tập CTDL và GT 1Bài tập CTDL và GT 1
Bài tập CTDL và GT 1
 

Recently uploaded

Khoá luận tốt nghiệp Đại học Đánh giá hiệu quả bể biogas plastic nổi trong xử...
Khoá luận tốt nghiệp Đại học Đánh giá hiệu quả bể biogas plastic nổi trong xử...Khoá luận tốt nghiệp Đại học Đánh giá hiệu quả bể biogas plastic nổi trong xử...
Khoá luận tốt nghiệp Đại học Đánh giá hiệu quả bể biogas plastic nổi trong xử...
lamluanvan.net Viết thuê luận văn
 
Khóa luận tốt nghiệp Đại học 2 Đánh giá hiện trạng công tác quản lý, thu gom ...
Khóa luận tốt nghiệp Đại học 2 Đánh giá hiện trạng công tác quản lý, thu gom ...Khóa luận tốt nghiệp Đại học 2 Đánh giá hiện trạng công tác quản lý, thu gom ...
Khóa luận tốt nghiệp Đại học 2 Đánh giá hiện trạng công tác quản lý, thu gom ...
lamluanvan.net Viết thuê luận văn
 
Giáo trình Nghiệp vụ bàn 4.0 (Nghề Quản trị khách sạn - Cao đẳng) - Trường Ca...
Giáo trình Nghiệp vụ bàn 4.0 (Nghề Quản trị khách sạn - Cao đẳng) - Trường Ca...Giáo trình Nghiệp vụ bàn 4.0 (Nghề Quản trị khách sạn - Cao đẳng) - Trường Ca...
Giáo trình Nghiệp vụ bàn 4.0 (Nghề Quản trị khách sạn - Cao đẳng) - Trường Ca...
https://www.facebook.com/garmentspace
 
Khoá luận tốt nghiệp Đại học 5 Đánh giá hiện trạng thu gom, xử lý rác thải si...
Khoá luận tốt nghiệp Đại học 5 Đánh giá hiện trạng thu gom, xử lý rác thải si...Khoá luận tốt nghiệp Đại học 5 Đánh giá hiện trạng thu gom, xử lý rác thải si...
Khoá luận tốt nghiệp Đại học 5 Đánh giá hiện trạng thu gom, xử lý rác thải si...
lamluanvan.net Viết thuê luận văn
 
Khoá luận tốt nghiệp Đại học 1 Đánh giá hiện trạng công tác quản lý rác thải ...
Khoá luận tốt nghiệp Đại học 1 Đánh giá hiện trạng công tác quản lý rác thải ...Khoá luận tốt nghiệp Đại học 1 Đánh giá hiện trạng công tác quản lý rác thải ...
Khoá luận tốt nghiệp Đại học 1 Đánh giá hiện trạng công tác quản lý rác thải ...
lamluanvan.net Viết thuê luận văn
 
Khoá luận tốt nghiệp Đại học Đánh giá hiện trạng quản lý chất thải rắn sinh h...
Khoá luận tốt nghiệp Đại học Đánh giá hiện trạng quản lý chất thải rắn sinh h...Khoá luận tốt nghiệp Đại học Đánh giá hiện trạng quản lý chất thải rắn sinh h...
Khoá luận tốt nghiệp Đại học Đánh giá hiện trạng quản lý chất thải rắn sinh h...
lamluanvan.net Viết thuê luận văn
 
Khoá luận tốt nghiệp Đại học Đánh giá hiện trạng môi trường của một số trang ...
Khoá luận tốt nghiệp Đại học Đánh giá hiện trạng môi trường của một số trang ...Khoá luận tốt nghiệp Đại học Đánh giá hiện trạng môi trường của một số trang ...
Khoá luận tốt nghiệp Đại học Đánh giá hiện trạng môi trường của một số trang ...
lamluanvan.net Viết thuê luận văn
 
Khoá luận tốt nghiệp Đại học Đánh giá diễn biến chất lượng nước sông Cầu trên...
Khoá luận tốt nghiệp Đại học Đánh giá diễn biến chất lượng nước sông Cầu trên...Khoá luận tốt nghiệp Đại học Đánh giá diễn biến chất lượng nước sông Cầu trên...
Khoá luận tốt nghiệp Đại học Đánh giá diễn biến chất lượng nước sông Cầu trên...
lamluanvan.net Viết thuê luận văn
 
Khoá luận tốt nghiệp Đại học Đánh giá hiện trạng môi trường nông thôn trên đị...
Khoá luận tốt nghiệp Đại học Đánh giá hiện trạng môi trường nông thôn trên đị...Khoá luận tốt nghiệp Đại học Đánh giá hiện trạng môi trường nông thôn trên đị...
Khoá luận tốt nghiệp Đại học Đánh giá hiện trạng môi trường nông thôn trên đị...
lamluanvan.net Viết thuê luận văn
 

Recently uploaded (9)

Khoá luận tốt nghiệp Đại học Đánh giá hiệu quả bể biogas plastic nổi trong xử...
Khoá luận tốt nghiệp Đại học Đánh giá hiệu quả bể biogas plastic nổi trong xử...Khoá luận tốt nghiệp Đại học Đánh giá hiệu quả bể biogas plastic nổi trong xử...
Khoá luận tốt nghiệp Đại học Đánh giá hiệu quả bể biogas plastic nổi trong xử...
 
Khóa luận tốt nghiệp Đại học 2 Đánh giá hiện trạng công tác quản lý, thu gom ...
Khóa luận tốt nghiệp Đại học 2 Đánh giá hiện trạng công tác quản lý, thu gom ...Khóa luận tốt nghiệp Đại học 2 Đánh giá hiện trạng công tác quản lý, thu gom ...
Khóa luận tốt nghiệp Đại học 2 Đánh giá hiện trạng công tác quản lý, thu gom ...
 
Giáo trình Nghiệp vụ bàn 4.0 (Nghề Quản trị khách sạn - Cao đẳng) - Trường Ca...
Giáo trình Nghiệp vụ bàn 4.0 (Nghề Quản trị khách sạn - Cao đẳng) - Trường Ca...Giáo trình Nghiệp vụ bàn 4.0 (Nghề Quản trị khách sạn - Cao đẳng) - Trường Ca...
Giáo trình Nghiệp vụ bàn 4.0 (Nghề Quản trị khách sạn - Cao đẳng) - Trường Ca...
 
Khoá luận tốt nghiệp Đại học 5 Đánh giá hiện trạng thu gom, xử lý rác thải si...
Khoá luận tốt nghiệp Đại học 5 Đánh giá hiện trạng thu gom, xử lý rác thải si...Khoá luận tốt nghiệp Đại học 5 Đánh giá hiện trạng thu gom, xử lý rác thải si...
Khoá luận tốt nghiệp Đại học 5 Đánh giá hiện trạng thu gom, xử lý rác thải si...
 
Khoá luận tốt nghiệp Đại học 1 Đánh giá hiện trạng công tác quản lý rác thải ...
Khoá luận tốt nghiệp Đại học 1 Đánh giá hiện trạng công tác quản lý rác thải ...Khoá luận tốt nghiệp Đại học 1 Đánh giá hiện trạng công tác quản lý rác thải ...
Khoá luận tốt nghiệp Đại học 1 Đánh giá hiện trạng công tác quản lý rác thải ...
 
Khoá luận tốt nghiệp Đại học Đánh giá hiện trạng quản lý chất thải rắn sinh h...
Khoá luận tốt nghiệp Đại học Đánh giá hiện trạng quản lý chất thải rắn sinh h...Khoá luận tốt nghiệp Đại học Đánh giá hiện trạng quản lý chất thải rắn sinh h...
Khoá luận tốt nghiệp Đại học Đánh giá hiện trạng quản lý chất thải rắn sinh h...
 
Khoá luận tốt nghiệp Đại học Đánh giá hiện trạng môi trường của một số trang ...
Khoá luận tốt nghiệp Đại học Đánh giá hiện trạng môi trường của một số trang ...Khoá luận tốt nghiệp Đại học Đánh giá hiện trạng môi trường của một số trang ...
Khoá luận tốt nghiệp Đại học Đánh giá hiện trạng môi trường của một số trang ...
 
Khoá luận tốt nghiệp Đại học Đánh giá diễn biến chất lượng nước sông Cầu trên...
Khoá luận tốt nghiệp Đại học Đánh giá diễn biến chất lượng nước sông Cầu trên...Khoá luận tốt nghiệp Đại học Đánh giá diễn biến chất lượng nước sông Cầu trên...
Khoá luận tốt nghiệp Đại học Đánh giá diễn biến chất lượng nước sông Cầu trên...
 
Khoá luận tốt nghiệp Đại học Đánh giá hiện trạng môi trường nông thôn trên đị...
Khoá luận tốt nghiệp Đại học Đánh giá hiện trạng môi trường nông thôn trên đị...Khoá luận tốt nghiệp Đại học Đánh giá hiện trạng môi trường nông thôn trên đị...
Khoá luận tốt nghiệp Đại học Đánh giá hiện trạng môi trường nông thôn trên đị...
 

Thuyết trình Cây Nhị Phân

  • 3. KháiniệmQueue  Hàng đợi (Queue) là một cấu trúc dữ liệu dùng để chứa các đối tượng làmviệc theo cơ chế FIFO (First In First Out)  Việc thêm một đối tượng luôn diễn ra ở cuối hàng đợi và một phần tử luôn được lấy ra từ đầu hàng đợi.
  • 4. `QueueVídụ:  Hàng đợi (Queue) là một cấu trúc dữ liệu dùng để chứa các đối tượng làmviệc theo cơ chế FIFO (First In First Out)  Việc thêm một đối tượng luôn diễn ra ở cuối hàng đợi và một phần tử luôn được lấy ra từ đầu hàng đợi.
  • 5. ThaotáctrênQueue TrênQueuecócác thao tácsau: Thêmphần tử vào cuốiQueue(Push) Xóa phần tử đầu Queue(Pop) Front Rear
  • 6. ThaotáctrênQueue Thêmphần tử vào cuốiQueue(Push) Xóa phần tử đầu Queue (Pop)
  • 7. XâydựngQueue  Nếuxây dựng Queuebằngmảng thì sẽ nhận thấy rằng: - Khi xoá một phần tử front tăng lên 1, khi thêm một phần tử rear tăng lên 1,đến một lúc nào đó ta không thể thêm vào hàng được nữa (rear=maxlength-1) dù mảng còn nhiều chỗ trống (các vị trí trước front) →Trường hợp này ta gọi là hàng bị tràn  Để khắc phục điều này chúng ta có thể coi mảng đó như 1 mảng với các phân tử được xếp vòng tròn để việc push và pop dễ dànghơn. Queue Circular(Hàng đợi vòng)
  • 8. KháiniệmPriorityQueue  Hàng đợi ưutiên (Priority Queue)là một kiểu dữ liệu trừu tượng tập hợp đặc biệt, trong đó mỗi phần tử cómột độưu tiên nàođó.  Hàng đợi ưutiên là cấutrúc dữ liệu tổng hợpcủa stack và queue.  Hàng đợi ưutiên không theo cơ chế FIFO.  Độ ưu tiên của phần tử thường là một số, theo đó, phần tử cóđộưu tiên nhỏ nhất sẽ được ‘ưu tiên’ nhất.  Ví dụ tại bệnh viện, cácbệnh nhân xếphàng để chờ phục vụnhưng không phải người đếntrước thì được phục vụ trước mà họ cóđộ ưu tiên theo tình trạng khẩn cấpcủa bệnh.
  • 9. PriorityQueue  Mỗi nút gồm: +Value (Giá trị) + Priority (Độ ưu tiên)  Chẳng hạn:  Ta thấy rằng:nút cóđộ ưutiên cao nhất sẽ đượclấy ra trước trong queue
  • 12. CàiđặtPriorityQueue  Ta không thể cài đặt Priority Queue bằng bảng băm vì bảng băm không thuận lợi trong việc tìm kiếm phần tử nhỏ nhất →Nên cách cài đặt Priority Queue khá thuận lợi đó là cài đặt bằng cây có thứ tự từng phần (TreeHeap).
  • 13. Câycàiđặtbằngmảng Nút mẹ thứ i gồm: Nút conbên trái: = 2*i+ 1 Nút conbên phải: =2*i + 2 Nút mẹ cuối cùngtrong cây: (n-1)/2 vớin là sốlượng phần tử  Giả sử ta cónút thứ i trong mảng: -> Nút mẹ của nút này là (i-1)/2  Các nút mẹ trong cây: từ i=0-> (n-1)/2
  • 15. TreeHeap Địnhnghĩa cây cóthứ tự từng phần ( Treeheap) Cây cóthứ tự từng phần là cây nhị phân mà giá trị tại mỗi nút mẹ có1 quan hệ thứ tự nào đó với2 nút con của nó. Có 2loại cây heap thường dùng: Max-Heap , Min-Heap Max-Heap:cây nhị phân mà giá trị tại mỗi nút mẹ đều lớn hơn hoặc bằng giá trị của hai con. Min-Heap: cây nhị phân mà giá trị tại mỗi nút mẹ đều nhỏ hơn hoặc bằng giá trị của hai con.
  • 17. Nhậnxét  Trêncây cóthứ tự từng phần, nút gốc là nút cógiá trị nhỏ nhất  Từ nhận xét này, ta thấy cóthể sử dụng cây cóthứ tự từng phần để cài đặt hàng đợiưu tiên  Trongđómỗi phần tử được biểu diễn bởi một nút trên câymà độ ưu tiên của phần tử là giá trị của nút
  • 18. CácthaotáctrênTreeHeap Vì TreeHeap dùng để biểu diễn Priority Queue nên sẽ cócácthao tác tương tự Queue: -Tìm phần tử lớnnhất/nhỏ nhất (Find Min/Max) - Xóa phần tử đầu tiên của cây (RemoveMiin) - Thêm phầntử vào cuốicây (Insert)
  • 19. FindMin 3 9 8 9 9 6 10 1610 5 Min-Heap Dễ dàng nhận thấy rằngNút gốc của cây chính là Max/ Min
  • 20. Remove Chiếnlược: Xét cây Min-Heap Lấynútlá tạimứccaonhấtvà nằmbênphảinhấtthaythếchonútgốc.  Như vậy cây vẫn "cân bằng" nhưng nó không còn đảm bảo tính thứ tự từng phần. Để xây dựng lại cây từng phần ta thực hiện việc "đẩy nút này xuống dưới". Tức là ta đổi chổ nó với nút con nhỏ nhất của nó, nếu nút con này có độ ưu tiên nhỏ hơn nó. Đâylà 1 quátrìnhđệquy.Quá trình đó sẽ dừng khi đã nổi lên đến nút gốc hoặc cây thỏa mãn tính chất có thứ tự từng phần.
  • 21. RemoveMin Giải thuật: Xétcây Min-Heap  Bước 1:Tathaythếnútgốcbằngnútlá cuối cùng trongcây  Bước 2: Taxéttừnútgốc: Nếugiátrịnúttráinhỏhơn nútphảivà nhỏhơn cảnútgốcthì tađổichỗnút tráivới nútgốc. Nếugiá trịnútphảinhỏhơn núttráivà nhỏhơn cảnútgốcthì tađổichỗnút phảivới nútgốc.  Bước 3: Sau khi đẩy nút gốc xuống một con nào đó (trái hoặc phải) thì phải tiếp tục xét con đó xem có phải đẩy xuống nữa hay không ? Quá trình đẩyxuốngsẽ kết thúckhiđã đẩyđến nútlà hoặc cây thỏamãn tính chấtcó thứ tự từng phần
  • 23. Insert Chiến lược: Để thêm một phần tử vào cây ta bắt đầu bằng việc tạo một nút lá mới nằm ở mức cao nhất. Nếu tất cả các lá ở mức cao nhất đều đang có mặt thì ta thêm nút mới vào bên trái nhất ở mức mới. ->Khinàycâybịmấtđi tínhchấtthứtựtoànphần Tiếp đó ta cho nút này "nổi dần lên" bằng cách đổi chổ nó với nút mẹ của nó nếu nút mẹ có độ ưu tiên nhỏ hơn. Đâycũng là 1 quátrìnhđệquy.Quá trình đó sẽ dừng khi đã nổi lên đến nút gốc hoặc cây thỏa mãn tính chất có thứ tự từng phần.
  • 24. Insert Thuậttoán:Xét vớiMin-Heap  Bước 1: Tathêm nútcầnthêm vàocâyởmứccuối cùng củacây.  Bước 2: Tasosánhnútnàyvới nútmẹcủanó: Nếu giá trịnútnàynhỏhơn nútmẹthì đổichỗ2 nút. Ngược lạithì kếtthúcvì câyđãthỏathứtựtoànphần.  Bước 3: Nếu nhưđổi chỗ2 núttaphảixéttiếpnútmẹvừa đổi. XétlạiBước 2 với Nútmẹ vừa đổichỗ.
  • 25. Insert 3 5 9 8 9 9 6 10 1610 4 Min Heap Demo
  • 26. Xây dựng Tree Heap Để việc xây dựng được hiệu quả, ta phải cố gắng sao cho cây tương đối ‘cân bằng’. Mọi nút trung gian (trừ nút là cha của nút lá) đều có hai con Đối với các nút mẹ của nút là có thể chỉ có một con và trong trường hợp đó ta quy ước là con trái (không có con phải).
  • 27. XâydựngTreeHeap Có 2 cách xâydựng Tree Heap: Rebuild (Xây dựng từ một câykháckhông có thứ tự). Build (Xây dựng trực tiếp từ mảng giá trị cho trước) .
  • 29. HeapSort Chiến lược: Dựa vào tính chất Tree Heap để sắp xếp lại mảng. Nhận xét ta thấy rằng: + Nút gốc của min-Heap sẽ nhỏ nhất trong cây. + Nếu ta lấy nút gốc ra và đưa vào 1 mảng mới ta sẽ được phần tử nhỏ nhất  Vậy ta lại lấy phần tử nhỏ tiếp theo khi đã loại bỏ phần tử nhỏ nhất khỏi cây đưa vào mảng mới ta sẽ được mảng đc sắp xếp tăng dần
  • 30. HeapSort Thuật toán: +Bước 1: Ta xây dựng Tree Heap từ mảng ban đầu.(Rebuild hoặc Build) +Bước 2: Ta lấy phần tử nút gốc ra khỏi cây (Phần tử a[0]) +Để lấy phần tử nút gốc ra khỏi cây ta chỉ cần đổi chỗ nút gốc vs nút là cuối cùng ( Đổi chỗ a[0] với a[n-1]) +Bước 3:  Ta xây dựng lại cây với n-1 phần tử. Ta áp dụng thuật toán RemoveMin để cân bằng lại cây  Lặp lại bước 2 khi vẫn còn phần tử trong mảng. Sau khi kết thúc:Ta thấy rằng mảng sẽ được sắp xếp giảm dần.
  • 31. ỨngdụngPriorityQueue Ứng dụng – Quản lý băng thông - Thuật toán Huffman - Thuật toán Dijkstra là một thuật toán giải quyết bài toán đường đi ngắn nhất dùng trong công nghệ Hệ thống định vị toàn cầu (GPS) - Dùng các bài toán có nhiều lựa chọn để xét độ ưu tiên để đạt hiểu quá tối ưu nhất.