Algorithm 排序双链表的搜索算法

Algorithm 排序双链表的搜索算法,algorithm,linked-list,search,Algorithm,Linked List,Search,作为一个学习练习,我刚刚尝试实现我自己的“合并排序”算法。我在一个std::list上做了这项工作,它显然已经内置了sort和merge函数。然而,我正计划把它转移到我自己制作的一个链表上,所以实现并不特别重要 问题在于,std::list没有访问随机节点的功能,只能访问前/后和单步执行。我原本打算在这个列表中执行一个简单的二进制搜索,然后通过几个步骤找到我的答案 std::list中已经有内置函数来执行这些排序,这一事实让我相信,有一种同样简单的方法可以以我想要的方式访问列表 无论如何,提前谢

作为一个学习练习,我刚刚尝试实现我自己的“合并排序”算法。我在一个std::list上做了这项工作,它显然已经内置了sort和merge函数。然而,我正计划把它转移到我自己制作的一个链表上,所以实现并不特别重要

问题在于,std::list没有访问随机节点的功能,只能访问前/后和单步执行。我原本打算在这个列表中执行一个简单的二进制搜索,然后通过几个步骤找到我的答案

std::list中已经有内置函数来执行这些排序,这一事实让我相信,有一种同样简单的方法可以以我想要的方式访问列表


无论如何,提前谢谢你的帮助

链表的工作方式是一步一步地浏览列表中的项目。根据定义,无法访问列表中的随机元素。您提到的排序方法实际上创建了一个全新的列表,每次遍历一个节点并将项目放置在正确的位置

如果要随机访问数据,则需要以不同的方式存储数据。可能是存储的元素数组


有关链表的更多信息:

链表的工作方式是一次一项地浏览列表中的项目。根据定义,无法访问列表中的随机元素。您提到的排序方法实际上创建了一个全新的列表,每次遍历一个节点并将项目放置在正确的位置

如果要随机访问数据,则需要以不同的方式存储数据。可能是存储的元素数组


有关链表的更多信息:

合并排序不需要访问随机元素,只需要访问列表一端的元素。

合并排序不需要访问随机元素,只需要访问列表一端的元素。

链表非常适合快速插入元素,但排序和搜索却不太适合。因此,如果您在第一次使用链表时就应该以正确的顺序插入元素,链表非常适合快速插入元素,但排序和搜索却不太适合。因此,如果在第一次使用链表时,您应该以正确的顺序插入元素。我假设是这样的,但想知道是否有一些我没有想到的较少提及或替代的访问方法。无论如何,回答得好,谢谢你。我假设是这样的,但我想知道是否有一些我没有想到的较少提及或替代的访问方法。无论如何,好答案,我感谢你。