Показать сообщение отдельно
  #5  
Старый 09.04.2009, 18:50
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,105
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

1. Есть специальная теория, по которой рассчитывается сложность алгоритма (О большое). Данный алгоритм имеет сложность n^2, т.е. квадрат кол-ва итераций.

2. Нет. Ничего специально делать не надо. Просто при выводе надо контролировать что данные для элемента не выводились. Т.е. перебор мы делаем полный, а вот вывод - нет.

Например, для вывода в консоль:
Код:
const
  N = 100; // Длинна последовательности
var
  F : Boolean;
  I, J : Integer;
  A, C : Array [1..N] Of Integer; // A - последовательность, C -счетчики
begin
  For I := 1 To N Do
    Begin
      F := True;
      For J := 1 To I-1 Do
        Begin
           If A[i] = A[J] Then F := False;
           If Not F Then Break;
        End;
     If F Then WriteLn('Ai = ' + IntToStr(A[i]) + ' -> ' + IntToStr(C[i]) + ' вхождений');
    End;

Где-то так. просто при выворде контролируем, что данный элемент (по значению) еще не встречался. И все.
Ответить с цитированием