---------
冒泡排序
選擇排序--只會移動N次
插入排序
快速排序
歸併排序
O(n)時間複雜度的桶排序
總結排序
當記錄規模較小時,直接插入排序較好;否則因爲直接選擇移動的記錄數少於直接插人,應選直接選擇排序爲宜。
(2)若文件初始狀態基本有序(指正序),則應選用直接插人、冒泡或隨機的快速排序爲宜;
(3)若n較大,則應採用時間複雜度爲O(nlgn)的排序方法:快速排序、堆排序或歸併排序。
快速排序是目前基於比較的內部排序中被認爲是最好的方法,當待排序的關鍵字是隨機分佈時,快速排序的平均時間最短;
堆排序所需的輔助空間少於快速排序,並且不會出現快速排序可能出現的最壞情況。這兩種排序都是不穩定的。
若要求排序穩定,則可選用歸併排序。但本章介紹的從單個記錄起進行兩兩歸併的 排序算法並不值得提倡,通常可以將它和直接插入排序結合在一起使用。先利用直接插入排序求得較長的有序子文件,然後再兩兩歸併之。因爲直接插入排序是穩定 的,所以改進後的歸併排序仍是穩定的。