Как я проверял, я нахожу правильное минимальное значение и предыдущий узел. После этого единственное, что мне нужно сделать, это обмен узлами, однако после реализации этого кода вывод ничего.Выбор Сортировка по одиночно связанному списку
После того, как я задал вопрос, я подумал, что проблема сортируется частично. Поэтому я добавил еще один узел, имя которого отсортировано, но все же я не мог решить свою проблему.
Вот мой пример кода:
public void selectionSort()
{
Node<T> first = head;
Node<T> previous = head;
Node<T> minimum = head;
Node<T> compare;
Node<T> temp;
Node<T> sorted = head;
while (first.Next != null)
{
sorted = minimum; // with this I'm finding the last sorted node
minimum = first;
compare = first.Next;
while (compare.Next != null)
{
if (minimum.Value.CompareTo(compare.Next.Value) > 0)
{
previous = compare; // Need previous node to changing connections
minimum = compare.Next; // Saving minimum value
}
compare = compare.Next;
}
// Swapping nodes
temp = first;
previous.Next = first;
first.Next = minimum.Next;
minimum.Next = temp.Next;
if (temp != head)
{
sorted.Next = minimum; // Adding minimum node to sorted part
}
first = first.Next;
}
}
я изменил в своем коде несколько вещей, он начал work.Thank вас! Вместо 'Null',' null'.Also 'if (currentInner.Value.CompareTo (minimum.Value) <0)', вместо '>' –
Исправлено это, спасибо! –
@ BatuhanAydın Была проблема с моим предыдущим решением, поэтому я опубликовал другой, более простой. См. Мой обновленный ответ. –