通过更改元素的值对单向链表进行排序
Sorting a singly linked list by changing the value of elements
根据我的任务,我需要用两种方式对单链表的元素进行排序。第一种是通过改变指针。据我所知,冒泡排序就是这个意思。第二种是通过改变元素的值。会是什么呢?插入?
您混淆了排序算法和交换方法。
要对列表进行排序,您可以使用冒泡排序算法、插入排序算法或许多其他算法。
但无论您使用什么算法,排序都会涉及改变列表中元素的顺序。你会怎么做?列表是一堆由指针连接的节点;您必须更改指针或更改节点。 (如果你想挑战的话,我想你可以两者都做。)
假设您有一个列表。我们将称之为 A、B 和 C 的三个节点,每个节点包含一个数字。开始时,A 包含 22,B 包含 55,C 包含 33,指针为 A->B->C。所以列表的顺序是{22, 55, 33},你想把它排序成{22, 33, 55}。一旦算法(无论你选择哪个)告诉你 B 和 C 是乱序的,你可以重定向指针以获得 A->C->B(保持节点的内容不受干扰),或者交换内容B 和 C(指针保持原样)。
根据我的任务,我需要用两种方式对单链表的元素进行排序。第一种是通过改变指针。据我所知,冒泡排序就是这个意思。第二种是通过改变元素的值。会是什么呢?插入?
您混淆了排序算法和交换方法。
要对列表进行排序,您可以使用冒泡排序算法、插入排序算法或许多其他算法。
但无论您使用什么算法,排序都会涉及改变列表中元素的顺序。你会怎么做?列表是一堆由指针连接的节点;您必须更改指针或更改节点。 (如果你想挑战的话,我想你可以两者都做。)
假设您有一个列表。我们将称之为 A、B 和 C 的三个节点,每个节点包含一个数字。开始时,A 包含 22,B 包含 55,C 包含 33,指针为 A->B->C。所以列表的顺序是{22, 55, 33},你想把它排序成{22, 33, 55}。一旦算法(无论你选择哪个)告诉你 B 和 C 是乱序的,你可以重定向指针以获得 A->C->B(保持节点的内容不受干扰),或者交换内容B 和 C(指针保持原样)。