天天看點

深拷貝與淺拷貝的差別

深拷貝與淺拷貝

一般來說,拷貝的類型分為 深拷貝與淺拷貝。

|—————————————————————————————|

| 深拷貝:引用對象的值等資訊,複制一份一樣的。 |

| 淺拷貝:隻複制引用,另一處修改,你當下的對象也會修改。 |

|—————————————————————————————|

排序算法中穩定的定義:序列相同元素排序後先後次序不變即穩定

穩定的
  冒泡排序(bubble sort) — O(n2)   雞尾酒排序 (Cocktail sort, 雙向的冒泡排序) — O(n2)   插入排序 (insertion sort)— O(n2)   桶排序 (bucket sort)— O(n); 需要 O(k) 額外 記憶體   計數排序 (counting sort) — O(n+k); 需要 O(n+k) 額外 記憶體   歸并排序 (merge sort)— O(n log n); 需要 O(n) 額外記憶體   原地歸并排序 — O(n2)   二叉樹排序 (Binary tree sort) — O(n log n); 需要 O(n) 額外記憶體   鴿巢排序 (Pigeonhole sort) — O(n+k); 需要 O(k) 額外記憶體   基數排序 (radix sort)— O(n·k); 需要 O(n) 額外記憶體   Gnome sort — O(n2)   Library sort — O(n log n) with high probability, 需要 (1+ε)n 額外記憶體
不穩定
  選擇排序 (selection sort)— O(n2)   希爾排序 (shell sort)— O(n log n) 如果使用最佳的現在版本   Comb sort — O(n log n)   堆排序 (heapsort)— O(n log n)   Smoothsort — O(n log n)   快速排序 (quicksort)— O(n log n) 期望時間, O(n2) 最壞情況; 對於大的、亂數串列一般相信是最快的已知排序   Introsort — O(n log n)   Patience sorting — O(n log n + k) 最外情況時間, 需要 額外的 O(n + k) 空間,