Текущий архив: 2003.07.17;
Скачать: CL | DM;
ВнизСортировка Найти похожие ветки
← →
Region (2003-06-29 21:41) [0]Слушайте, мастаки. Клинит меня чето седня. Ну напишите мне просто алгоритм сортировки m: array of какой_то_тип в случайном порядке.
Плз.
← →
Palladin (2003-06-29 21:45) [1]ветка: http://delphimaster.net/view/1-1056891773/
пост: Palladin © (29.06.03 17:37)
цикл номер 2
← →
Region (2003-06-29 21:52) [2]Да... Но там, насколько я понял, для числовых массивов. А мне надо для произвольного типа. Вот есть массив. Требуется расставить элементы в случайном порядке. просьба написать алгоритм.
← →
ss300 (2003-06-30 00:05) [3]не лучший вариант.. но за 5 мин. лучшего алгоритма не придумаешь :)
это сортировка по возрастанию.. а по убыван.. сам сделаешь.
for j :=1 to 10 do
begin
for i:=1 to 10 do
begin
if a[i]>a[i+1] then begin t:=a[i]; a[i]:=a[i+1];ai+1]:=t;
end;
end;
end;
← →
Mihey (2003-06-30 00:21) [4]Можно использовать способ Palladin"а или мою процедурку:
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;
Так ты заполнишь числовой массив неповторяющимися значениями. Теперь представь, что эти значения - это индексы массива, т.е. элемент a[1] содержит 5, а значит первый элемент массива с твоими данными нужно поместить на место пятого элемента (приёдтся для перемешки ещё один массив делать) и т.д..
← →
ss300 (2003-06-30 00:23) [5]я не понял, Регион тебе что надо? сортировка или массив неповторяющихся случайных чисел? :)
← →
Makhanev A.S. (2003-06-30 00:32) [6]В D6 точно в Demos примерчик есть, там для иллюстрации потоков 3 метода сортировки показаны...
Папка "D6\Demos\Threads"
← →
Region (2003-06-30 17:14) [7]Есть массив совершенно произвольного типа элементов. Мне надо, чтобы в этом массиве все элементы встали не так, как они стоят сейчас, а в случайном порядке. Может мне кто-нибудь нормальный алгоритм написать, чтобы вставил в программу - и работало?
← →
[NIKEL] (2003-06-30 17:20) [8]массив не то и массив, что бы хранить данные ОДНОГО типа
у тебя что, структурки динамические в массиве хранятся(указатели точнее) ?
использую лучше TList
->чтобы вставил в программу - и работало?
я б вставил, млин...
← →
Poirot (2003-06-30 18:41) [9]
> Region ©
Это вам помоему что-то очень интересное хочется?!?!?!?!?!?!!?!?!?
ну я могу конечно что-то вам предложить, но тут придётся думать, а вам похоже это не хочется делать... так вот - вы бы вопрос сформулировали, так как надо... сортировка - это упорядочивание элементов, а вам надо просто сделать генератор псевдослучайной последовательносли, причём желательно с периодом = размеру вашего массива и при каждом значении этой выборки добавлять из исходного массива по выбранному числу элемент, в позицию номера элемента выборки...
типа что-то этого!!!
← →
Mihey (2003-06-30 18:56) [10]
const N = 10;
var a0: array [1..N] of TMyType;
a1: array [1..N] of TMyType;
n0: array [1..N] of Integer;
i: Integer;
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;
begin
... // Заполняется a0, свои действия...
// Теперь будем мешать
FillArray(n0);
For i := 0 to N do
begin
a1[n[i]] := a0[i];
end;
... // Всё, массив a1 заполнен в случайно мопрядке элементами a0
end;
← →
Region (2003-06-30 19:16) [11]Спасибо.
Страницы: 1 вся ветка
Текущий архив: 2003.07.17;
Скачать: CL | DM;
Память: 0.46 MB
Время: 0.01 c