C++ C++;对链接列表进行适当排序的最佳方法?

C++ C++;对链接列表进行适当排序的最佳方法?,c++,list,sorting,C++,List,Sorting,我有一个带有纹理索引的元素链接列表。它们是未分类的。我需要他们对它们进行排序,以便纹理索引按顺序递增。我总是可以声明另一个列表并阅读它,但我很好奇如何进行排序。有人建议或链接我应该从哪里开始/我应该开始寻找什么来做这件事吗?另外,我没有使用STL列表 谢谢大家! 由于缺乏随机访问,对链接列表进行排序的效率不高。如果你知道你的列表不会很长,你可以使用一个简单的算法,比如冒泡排序,或者如果你能负担一点点额外的复杂性,插入排序会更好 另一种可能比尝试对链表进行排序更好的方法是只在正确的位置插入每个新节

我有一个带有纹理索引的元素链接列表。它们是未分类的。我需要他们对它们进行排序,以便纹理索引按顺序递增。我总是可以声明另一个列表并阅读它,但我很好奇如何进行排序。有人建议或链接我应该从哪里开始/我应该开始寻找什么来做这件事吗?另外,我没有使用STL列表


谢谢大家!

由于缺乏随机访问,对链接列表进行排序的效率不高。如果你知道你的列表不会很长,你可以使用一个简单的算法,比如冒泡排序,或者如果你能负担一点点额外的复杂性,插入排序会更好


另一种可能比尝试对链表进行排序更好的方法是只在正确的位置插入每个新节点,这样在添加元素后,链表就会被排序。

对链表进行排序可能最好的方法是合并排序(仍然是
O(n log n)
即使对于列表也是如此),因为您没有随机元素访问权限。如果您可以切换到
std::list
list::sort
功能将为您解决此问题


或者使用非列表容器代替列表,您可以使用任意排序方法。

为什么不使用
std::list
代替自定义列表?(当然,为什么要使用列表?它可以说是最糟糕的容器。)首先,您需要解释应用于链表时“就地”的含义。不生成另一个列表?不重新链接现有列表的元素?还有别的吗?