Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2003.07.17;
Скачать: [xml.tar.bz2];

Вниз

Сортировка   Найти похожие ветки 

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.029 c
1-55575
Nucl
2003-07-02 19:54
2003.07.17
Как принудительно вызвать появление хинта у контрола ?


14-55713
Дмитрий К.К.
2003-07-02 06:10
2003.07.17
Именинники 2 июля


6-55678
Mihail R.
2003-05-08 14:08
2003.07.17
TNMPOP3: неправильно сохраняет вложения?


3-55419
Relaxxx
2003-06-24 10:20
2003.07.17
Как выделить програмно нужные строки в DBGrid


1-55529
Макс
2003-07-05 09:28
2003.07.17
Курсор





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский