Merge Sort 時間複雜度 拆分 有 N 個元素需拆 N -1 次 ( 切 N -1 刀 ) 。 合併 共有 N 個元素的兩個小陣列相合併就需 n 步驟 共有 N 個元素做合併就需 log 2 N 個輪 N x log 2 N = N log 2 N 時間複雜度 (N -1) + nlog 2 n = O( NlogN ) 7
Visualization of Quick sort https://www.youtube.com/watch?v=aXXWXz5rF64 Merge Sort vs Quick Sort https://www.youtube.com/watch?v=es2T6KY45cA 21
Quick Sort 時間複雜度 有 N 個元素約需掃描 N 次 。 N 個元素需做 log 2 N 輪 時間複雜度 N x log 2 N = O( NlogN ) 22
Quick Sort 虛擬碼 /* low --> Starting index, high --> Ending index */ quickSort ( arr [], low, high){ if (low < high){ /* pi is partitioning index, arr [pi] is now at left place */ pi = partition( arr , low, high); quickSort ( arr , low, pi - 1); // Before pi quickSort ( arr , pi + 1, high); // After pi } } 23