我想知道排序鏈接列表的目的是什麼。因爲如果您需要在未排序的鏈接列表和已排序的鏈接列表中查找元素,則必須執行O(n)。 請原諒我的問題是否愚蠢排序鏈表的目的是什麼?
回答
排序的目的並不總是在對數時間搜索。很顯然,有很多其他的排序數據應用程序。
假設您必須從大鏈接列表中去除重複(刪除重複元素),並且您沒有足夠的空間將列表項加載到哈希表中,因爲列表非常大。在這種情況下,您可以對列表進行排序並刪除連續的元素(如果它們相同),從而對列表進行重複刪除。
如果要將元素插入已排序容器中的適當位置,排序鏈接列表非常方便,這將保證線性時間和恆定的空間複雜度。但是對於數組,您需要使用臨時數組,然後逐個移動所有元素。 Infact LRU緩存是一個雙向鏈接列表,並根據最近擊中的項目進行排序。新近使用的項目和舊項目再次被訪問,插入前面以保持已排序的列表排序。如果在這裏使用類似於結構的陣列,則LRU緩存不能提供恆定的複雜性。這只是一些經典的應用。你可以找到很多其他的應用程序。
你能給我更多的應用程序嗎?非常感謝你! – KhoaTran
@KhoaTran不客氣。檢查更新 –
讓我們考慮一個鏈表用於實現優先級隊列。我們可以隨機添加不同優先級的元素,但是我們希望根據優先級處理隊列的元素,維護排序後的鏈接列表會很有用,以便優先級最高的項目出現在開頭,並將它們從隊列是一個簡單的操作。這不是完全排序列表,而是插入項目時,它將根據優先級放置在正確的位置。這與數組的插入排序類似。
- 1. 多列排序的目的是什麼?
- 2. 排序集的目的是什麼?
- 3. 排序鏈接列表的最佳方式是什麼?
- 4. 什麼是測試最佳排序算法的雙向鏈表
- 5. 排序部分排序列表的最佳方法是什麼?
- 6. 排序排序鏈表鏈表問題
- 7. 什麼是最快的快速排序 - 排序算法的排名表?
- 8. document.cookie的排序順序是什麼?
- 9. UVM虛擬排序器的目的是什麼
- 10. 排序鏈表
- 11. 什麼是插入排序?
- 12. 在Java中對鏈表進行排序的正確方法是什麼?
- 13. 什麼是排序序列化列表的理想方式Java
- 14. 鏈表的具體排序
- 15. 排序的雙向鏈表
- 16. 什麼是Knockout中的connectClass可排序?
- 17. 爲什麼Monad的排序是Set1?
- 18. 什麼是iOS wchar_t的排序?
- 19. 什麼是TreeMap中的「自然排序」?
- 20. 這是什麼樣的排序算法?
- 21. 什麼是四鏈表?
- 22. 鏈接OpenCV庫的順序是什麼?
- 23. makefile中鏈接的順序是什麼?
- 24. C#這是什麼類型的排序列表框的
- 25. 鏈接列表的缺點是什麼?
- 26. 鏈接列表中的Foreach項目是否按順序排列項目?
- 27. 什麼是gamecenter排行榜的默認排序順序。
- 28. 爲什麼我的方法無法按字母順序排序鏈接列表?
- 29. 將未排序的鏈接列表變成已排序的鏈接列表? (C++)
- 30. html表,最新的目的是什麼
無。如果這是所需的用法,該列表應該以分類方式進行維護。對鏈表進行排序是計算機科學已知的效率最低的操作之一。 – EJP