當對已經排序的數組進行排序時,哪種排序算法最適合使用?排序算法最適合對排序數組進行排序
回答
插入排序適用於幾乎排序的數據。您接近最佳結果。
這裏是一個偉大的動畫,顯示的排序將如何執行:http://www.sorting-algorithms.com/insertion-sort
這要看情況。數組的大小? 「已經幾乎排序」是什麼意思 - 就像數據的百分比已經按順序排列了一樣?你的編程和數據存儲環境是什麼 - 內存中的數據,數據庫,文件?說了這麼多,你可以從研究Timsort開始。這是一種相對較新的排序算法,它將處理大型數據集,利用「運行」(數據已按排序順序排列)。
是的,已經幾乎按照已經按順序排列的數據的百分比排序 – Shauna
如果您將「幾乎排序」定義爲具有相反數量的數據點對,而不是正確的順序(例如,想象一下采取排序列表,然後採用不相交的連續數據點對並倒轉他們),那麼一個氣泡排序將工作得非常好,你做了一個修改,如果你交換兩個元素,那麼你繼續向左搜索並交換,只要相鄰元素失序。如果不成對的數量是O(n),則這將具有複雜度O(n)。
這是真的,但在這種情況下插入排序仍然比泡泡更好。它做了一個類似的排序步驟較少。 – StilesCrisis
- 1. 排序d排序數組的算法
- 2. Java使用合併排序對數組進行排序
- 3. 使用合併對數組進行排序索引排序
- 4. 對數組進行排序
- 5. 對數組進行排序
- 6. 按升序對數組進行排序
- 7. 按降序對數組進行排序
- 8. 按降序對數組進行排序
- 9. 在Ruby中對組合進行排序
- 10. 爲一個已排序陣列的運行時間由選擇排序算法進行排序Vs的時間爲反轉排序的數組進行排序
- 11. 對數組或數組進行排序?
- 12. 合併排序不排序數組
- 13. 最有效的方法來排序2d數組排序到1d排序數組
- 14. 使用堆排序對數組進行排序
- 15. 使用閉包對未排序數組進行排序
- 16. 在javascript對象數組中進行排序和排序
- 17. PHP排序多維數組,只能對一列進行排序
- 18. 使用GET變量對數組進行排序..沒有排序
- 19. 使用多個排序標準對數組進行排序(QuickSort)
- 20. 3對已排序的數組進行排序。 O(NlogN)實現
- 21. 順序進行排序組
- 22. 數組排序 - 和合並 - 算法
- 23. 無法使用排序對數據進行排序
- 24. 當對一個排序列表進行排序時,輸出集合不排序
- 25. 排序數組排序
- 26. 排序數組沒有排序()方法
- 27. 哪種排序算法最適合重新排序幾乎完全排序的列表?
- 28. 使用合併排序對n個字符串進行排序
- 29. 如何讓我的快速排序算法按升序和降序對數組進行排序?
- 30. 如何使用數組順序對此集合進行排序?
定義「幾乎排序」?對於人來說,「幾乎分類」的東西可能與機器非常不同。 –