C# Bubble sorting Связанный список для l oop вопрос - PullRequest
0 голосов
/ 13 марта 2020
  public void BubbleSortExData()
    {
        Node end = null;
        Node p = null;
        Node q = null;

        for (end = null ; end != start.link; end = p)
        {
            for (p = start; p.link != end; p = p.link)
            {
                q = p.link;

                if (p.data > q.data)
                {
                    int temp = p.data;
                    p.data = q.data;
                    q.data = temp;
                }
            }
        }
    }

Итак, у меня есть этот код, и он работает нормально, но мне трудно понять его.

Я получаю часть, в которой мы сравниваем два значения типа int и заменяем их при необходимости. Но я не понимаю две петли.

1 Ответ

2 голосов
/ 13 марта 2020
  • Как вы говорите, оператор if меняет местами данные 2 узлов, если они вышли из строя.
  • Внутренний l oop применяет это if к каждому узлу из начало (start) до end, в этом порядке. Это означает, что наибольшее значение теперь будет в end.
  • . Внешнее l oop применяет этот процесс к последовательным end s, работающим спереди назад. Это означает, что на каждой итерации отсортированная часть списка является длинным суффиксом it, пока не охватит весь список.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...