Professional Documents
Culture Documents
Huong Dan
Huong Dan
1. Inser onSort
12 7 11 9 2
B01:
current=1, walker=0, hold=7
7<12: swap(7,12)
7 12 11 9 2
B02:
current=2, walker=1, hold=11
11<12: swap(11,12)
7 11 12 9 2
current=2, walker=0, hold=11
11>7: no swap
7 11 12 9 2
B03:
curr=3, w=2, h=9
9<12: swap(9,12)
7 11 9 12 2
curr=3, w=1, h=9
9<11: swap(9,11)
7 9 11 12 2
Curr=3, w=0, h=9
9>7: no swap
B04:
curr=4, w=3, h=2
2<12: swap(2,12)
7 9 11 2 12
curr=4, w=2, h=2
2<11: swap(2,11)
7 9 2 11 12
curr=4, w=1, h=2
2<9: swap(2,9)
7 2 9 11 12
curr=4, w=0, h=2
2<7: swap(2,7)
2 7 9 11 12
B01:
curr=0, w=1, smallest=12
w=1 -> 4: min=2
2<12: exchance(12,2)
2 7 11 9 12
B02:
curr=1, w=2, smallest=7
w=2 -> 4: min=9
9>7: no exchance
2 7 11 9 12
B03:
curr=2, w=3, smallest=11
w=3 -> 4: min=9
9<11: exchance(11,9)
2 7 9 11 12
B04:
curr=3, w=4, smallest=11
w=4: min=12
12>11: no exchance
2 7 9 11 12
B05:
curr=4, smallest=12
no exchance
2 7 9 11 12
Pass 05:
c=4, w=4, s=T
no swap
end BubleSort
4. QuickSort
10 15 1 2 6 12 5 7
Lưu ý: tùy theo việc chọn pivot ở vị trí đầu/giữa/cuối mà việc chạy tay sẽ có sự thay đổi thứ tự các phần
tử ở các bước.
1 2 6 5 7 12 15 10
1 2 5 6 7 10 15 12
B03:
a) Tách danh sách trái
1 2 5 6
1 2 5 6
Chọn pivot le = 2, 1<2 : no swap, kết thúc.
1. Tạo cấu trúc cây nhị phân từ các phần tử trong danh sách
2. Bắt đầu tạo cây Max Heap từ cây nhị phân
2.1. Đi từ level thấp nhất của cây
2.2. Duyệt từ phần tử cuối cùng thuộc nhánh.
2.2. Ưu ên giải quyết nhánh liên quan node trước, sau đó mới chuyển nhánh khác cùng level.
2.3. Duyệt hết cùng level, ếp tục từ 2.2
3. Hoán đổi root và leaf cuối cùng trong cây
4. Remove node ở vị trí cuối ra khỏi cây và đặt vào cuối danh sách
5. Bắt đầu lại bước 2 cho đến khi duyệt hết các phần tử
swap(17,1)
remove 17
heapify
1 15 13 9 6 5 10 4 8 3 17
swap(15, 3)
remove 15
3 9 13 8 6 5 10 4 1 15 17
heapify
swap(13,1)
remove 13
1 9 10 8 6 5 3 4 13 15 17 heapify
swap(10, 4)
remove 10
4 9 5 8 6 1 3 10 13 15 17
heapify
swap(9, 3)
remove 9
3 8 5 4 6 1 9 10 13 15 17
heapify
swap(8, 1)
remove 8
1 6 5 4 3 8 9 10 13 15 17
heapify
swap(6, 3)
remove 6
3 4 5 1 6 8 9 10 13 15 17
heapify
swap(5, 1)
remove 5
1 4 3 5 6 8 9 10 13 15 17
heapify
swap(4, 3)
remove 4
3 1 4 5 6 8 9 10 13 15 17
swap(3, 1)
remove 3
1 3 4 5 6 8 9 10 13 15 17