Как отсортировать реализованную структуру данных списка в порядке убывания? - PullRequest
0 голосов
/ 23 мая 2019

Мне нужно отсортировать список в порядке убывания.Как мне это сделать ?У меня есть следующий класс:

class Node
{
    public int data;
    public Node next; 
}
class List
{
    public Node head;
}

Таким образом, метод должен иметь следующую подпись

List Sorted(List x)

, чтобы он возвращал другой список, содержащий элементы x, но отсортированные в порядке убывания,Голова должна содержать самый большой элемент.Как я могу это реализовать?

Ответы [ 2 ]

0 голосов
/ 23 мая 2019

Вот неэффективная реализация, медленнее, чем пузырьковая сортировка .Он сортирует на месте список, представленный в качестве аргумента, он не создает отсортированную копию списка.Если создание копии необходимо, вам может потребоваться выполнить копирование самостоятельно.

void Sort(List x)
{
start:
    Node current = x.head;
    Node previous = null;
    while (current != null && current.next != null)
    {
        if (StringComparer.Ordinal.Compare(current.data, current.next.data) < 0)
        {
            // Swap current and current.next nodes
            // We need to change three references
            if (previous != null)
            {
                previous.next = current.next;
            }
            else
            {
                x.head = current.next;
            }
            var temp = current.next.next;
            current.next.next = current;
            current.next = temp;
            goto start; // Restart the loop
        }
        // Advance previous and current references
        previous = current;
        current = current.next;
    }
}
0 голосов
/ 23 мая 2019

Я надеюсь, что это поможет вам

var objectordered = object.OrderBy(o => o.Desc).ToList();

или с помощью сортировки

var objectordered = object.Sort((obj1,obj2) => obj1.Desc.CompareTo(obj2.Desc));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...