SORTING Michael Tsai 201357 2 Sorting 8 Decision







![8 Decision tree for sorting [1, 2, 3] [1, 3, 2] stop [1, 2, 8 Decision tree for sorting [1, 2, 3] [1, 3, 2] stop [1, 2,](https://slidetodoc.com/presentation_image/280328ec993ea87d750fbcdcad64f65d/image-8.jpg)







![16 Merge Sort void Mergesort(int A[], int temp, int left, int right) { int 16 Merge Sort void Mergesort(int A[], int temp, int left, int right) { int](https://slidetodoc.com/presentation_image/280328ec993ea87d750fbcdcad64f65d/image-16.jpg)













- Slides: 29

SORTING Michael Tsai 2013/5/7

2 Sorting •





![8 Decision tree for sorting 1 2 3 1 3 2 stop 1 2 8 Decision tree for sorting [1, 2, 3] [1, 3, 2] stop [1, 2,](https://slidetodoc.com/presentation_image/280328ec993ea87d750fbcdcad64f65d/image-8.jpg)
8 Decision tree for sorting [1, 2, 3] [1, 3, 2] stop [1, 2, 3] stop [1, 3, 2] • [2, 1, 3] stop [2, 3, 1] [2, 1, 3] stop [3, 1, 2] stop [3, 2, 1]



11 複習: Selection Sort •

12 Insertion Sort • 方法: 每次把一個item加到已經排好的, 已經有i個item的list, 變成有i+1個item的排好的list 2 3 6 5 1 4 2 3 5 6 1 4 1 2 3 5 6 4 1 2 3 4 5 6

13 Insertion Sort •

14 Insertion Sort的好性質 •

![16 Merge Sort void Mergesortint A int temp int left int right int 16 Merge Sort void Mergesort(int A[], int temp, int left, int right) { int](https://slidetodoc.com/presentation_image/280328ec993ea87d750fbcdcad64f65d/image-16.jpg)
16 Merge Sort void Mergesort(int A[], int temp, int left, int right) { int mid; if (right > left) { mid=(right+left)/2; Divide Mergesort(A, temp, left, mid); Conquer Mergesort(A, temp, mid+1, right); Merge(A, temp, left, mid+1, right); Combine } }

17 Merge Sort: Example

18 How to combine? (Karumanchi p 251) 原本的位置 mid left 1 暫時的儲存 4 1 5 2 8 3 2 4 5 3 6 6 8 9 9

19 Merge sort •


21 Quick Sort • 方法: 每次找出一個pivot(支點), 所有它左邊都比它小(但是 沒有sort好), 所有它右邊都比它大, 然後再call自己去把pivot 左邊與pivot右邊排好. 26 5 37 1 61 11 59 15 48 19 26 5 19 1 61 11 59 15 48 37 26 5 19 1 15 11 59 61 48 37 11 5 19 1 15 26 59 61 48 37

22 Quick Sort 11 5 19 1 15 26 59 61 48 37 1 5 11 19 15 26 59 61 48 37 1 5 11 15 19 26 48 37 59 61 1 5 11 15 19 26 37 48 59 61

23 Quick Sort: Worst & Best case •

24 Randomized Quick Sort • 亂數選擇一個當pivot 26 5 37 先交換 1 61 11 59 15 48 19


26 Average running time


28 比較四大金剛 Worst Average Additional Space? Insertion sort O(1) Heap sort O(1) Merge sort O(n) Quick sort O(1) • Insertion sort: n小的時候非常快速. (因為常數c小) • Quick sort: average performance最好 (constant也小) • Merge sort: worst-case performance 最好 • Heap sort: worst-case performance不錯, 且不用花多的空間 • 可以combine insertion sort和其他sort • 怎麼combine? • 答: 看n的大小決定要用哪一種sorting algorithm.

29 Today’s Reading Assignments •
No decision snap decision responsible decision
Financial management process
Internal sorting and external sorting
Dr. yu-dai tsai
Eddie tsai
Jerry tsai tutor
Chin-chung tsai
Wen-hsuan tsai
Vukovar rat
Lulu tsai md
Shannon tsai
Robin tsai
Jerry tsai tutor
Beth tsai
Charlene tsai
Decision tree and decision table examples
What horrible thought struck harry
Bitonic sorting network
What is sorting in ict
What is stable sorting
Non deterministic algorithm for sorting
Nagasaki sorting algorithm
Searching and sorting in java
Sorting algorithm
Protein fragment complementation assay
Define topological sort in data structure
Recursive sorting algorithms
Lower bound for comparison based sorting algorithms
Fluorescence-activated cell sorting (facs)
Angles quadrilaterals worksheet