Меню сайта
Мини-чат
Чтобы добавить сообщение, необходимо авторизоваться.
Главная » Статьи » Не стандартные примеры на Delphi » Pascal

Заполнения массива случаными неповторяющимися значениями
Письмо от читателя...

Здравствуйте, Валентин. Огромное Вам спасибо за сбор и систематизацию советов по Delphi. Предлагаю Вам интересное решение заполнения массива случаными неповторяющимися значениями. Думаю этот алгоритм небесполезен.


    type arr= array [1..255] of integer;

procedure FillArray(var A: arr; n: integer);
var i: integer;
s: string;
q: byte;
begin
randomize;
s:='';
for i:=1 to n do
begin
q:=random(i);
insert(chr(i),s, q);
end;
for i:=1 to n do
begin
A[i]:=ord(s[i]);
end;
end;

С уважением Дедок Василий.
e-mail: dedokv@mail.ru

He вступая в дискуссию, цитирую следующее письмо:

Заполнять ЦЕЛОЧИСЛЕННЫЙ массив, используя строки -- ЭТО ПОШЛО!

Приведу стандартную процедуру, работает в шесть раз быстрее, не имеет ограничений, да и кода поменьше :)


    procedure FillArray(var A: array of Integer);
var
I, S, R: Integer;
begin
for I := 0 to High(A) do A[I] := I;
for i := High(A) downto 0 do begin
R := Random(I);
S := A[R]; A[R] := A[I]; A[I] := S;
end;
end;

С уважением, Иваненко Фёдор Григорьевич.

e-mail: theodor_iv@mail.ru

Категория: Pascal | Добавил: DelphiAiX (09.05.2012)
Просмотров: 869 | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]