1. Главная
  2. Библиотека
  3. Программирование
  4. Type ATYPE=array[1..n] of integer; StupidSort( var A:ATYPE...
Разбор задачи

Type ATYPE=array[1..n] of integer; StupidSort( var A:ATYPE; n: integer); i : integer; i:=1; While (i

  • Предмет: Программирование
  • Автор: Кэмп
  • #Основы алгоритмизации и программирования
  • #Структуры и алгоритмы обработки данных
Type ATYPE=array[1..n] of integer; StupidSort( var A:ATYPE; n: integer); i : integer; i:=1; While (i

Условие:

Type ATYPE=array[1..n] of integer;\nProcedure StupidSort( var A:ATYPE; n: integer);\nVar i : integer;\nBegin
i:=1;
While (i<n) do
If A[i]<A[i+1] then
Begin swap(A[i],A[i+1]);
i:=i-1;
If i=0 then i:=1;
End
Else i:=i+1;\nEnd;

Решение:

  1. Изначально алгоритм начинает с i=1 и проходит по массиву от начала до конца. При обычном проходе можно подумать, что сложность O(n), поскольку i увеличивается на 1 при неприменении swap.

  2. Однако, если условие A[i] < A[i+1] выполняется, производится swap, и значение i уменьшается на 1 (а если i становится 0 – устанавливается в 1). Это означает, что алгоритм возвращается назад для проверки, не нарушилась ли упорядоченность ранее отсортированных элементов.

  3. Такая ситуация характерна для случаев, когда массив изначально отсортирован в обр...

Внутри — полный разбор, аргументация, алгоритм решения, частые ошибки и как отвечать на каверзные вопросы препода, если спросит

Попробуй решить по шагам

Попробуй один шаг и продолжи в режиме обучения или посмотри готовое решение

Какова асимптотическая сложность алгоритма StupidSort в худшем случае?

Что нужно знать по теме:

Что нужно знать по теме

Алгоритм решения

Топ 3 ошибок

Что спросит препод

Выбери предмет