Информация об изменениях

Сообщение Re[4]: Тестовое задание Senior .Net - критикуйте от 17.08.2022 14:12

Изменено 17.08.2022 17:52 Shmj

Re[4]: Тестовое задание Senior .Net - критикуйте
Здравствуйте, vaa, Вы писали:

vaa>ОК! Понеслась!


Во-первых, сразу ошибка —

var fileName = new Generator().Generate(2_000);
await new Sorter().Sort(fileName, 500);


Должно получаться 4 файла а получается 3. Какой тут сеньор, скажите? Причина — неумение писать понятный код.

Вот это:



— содержит баг. Сначала читается строка и потом проверяется конец файла — по этому эта последняя строка не будет учтена. Исправить очень просто и наглядно вот так, пишу как для дебилов — а то вы все умные, пока практики не коснется:

  Скрытый текст


Ниже еще один баг:



— это нужно для случаев, если i != 0 как раз.

Сама сортировка вроде тоже с ошибкой — еще не проверял. За это уже ставлю неуд.

В сортировке — тоже ошибка, смотрите сами:

List<string> l = new List<string>()
           {
               "b",
               "c",
               "a"
           };

Reorder(l);

// - для вашего алгоритма:

private static void Reorder(List<string> lines)
        {
            if (lines.Count == 1)
                return;

            int i = 0;
            while (lines[i].CompareTo(lines[i + 1]) > 0)
            {
                var t = lines[i];
                lines[i] = lines[i + 1];
                lines[i + 1] = t;
                i++;
                if (i + 1 == lines.Count)
                    return;
            }
        }


Выдаст b,c,a а не a,b,c.

Скорее всего быстрее будет задействовать b-tree c неким буффером в памяти.
Re[4]: Тестовое задание Senior .Net - критикуйте
Здравствуйте, vaa, Вы писали:

vaa>ОК! Понеслась!


Во-первых, сразу ошибка —

var fileName = new Generator().Generate(2_000);
await new Sorter().Sort(fileName, 500);


Должно получаться 4 файла а получается 3. Какой тут сеньор, скажите? Причина — неумение писать понятный код.

Вот это:



— содержит баг. Сначала читается строка и потом проверяется конец файла — по этому эта последняя строка не будет учтена. Исправить очень просто и наглядно вот так, пишу как для дебилов — а то вы все умные, пока практики не коснется:

  Скрытый текст


Ниже еще один баг:



— это нужно для случаев, если i != 0 как раз.

Скорее всего быстрее будет задействовать b-tree c неким буффером в памяти.