Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.11.20;
Скачать: CL | DM;

Вниз

массивы в делфи   Найти похожие ветки 

 
KaTH   (2005-10-27 23:12) [0]

понесли девушку на ВМС МИРЭА, теперь сидит мучается... подскажите пожалуйста идейку как решается следуйщее
Дан массив А из Н целых чисел переставить эллементы сассива так, чтобы вначале шла группа эллементов больших того элемента кот., в исходном массиве распологается на первом месте, затем сам этот элемент, потом группа элементов меньших или равных ему. Число сравнений и перемещений для каждого в отдельности не должно превышать Н-1


 
Германн ©   (2005-10-28 01:51) [1]

2 Девушка
Сначала научись меньше пить, потом научись излагать свои мысли. Не хило бы было и научиться "попадать на клавиши"!


 
skiph ©   (2005-10-28 04:23) [2]

С такой постановкой задача не решаема, поскольку на ряд элементов нужно будет 2 сравнения: скажем, больше ли он первого элемента и, если - нет, равен ли он этому элементу.
Могу предложить только такой вариант:

Var a,a_copy:array[1..H] of integer (byte, real,...)
i, b,e:integer;

begin
// получаем данные
b:=1; // будем заполнять одновременно с конца и с начала
e:=H;
for i:=2 to H do
if a[i]>a[1] then // элемент больше, значит в начало
 begin
   a_copy[b]:=a[i];
   inc(b);
 end
else
 if a[i]<a[1] then // сравнение нужно, поскольку в массиве могут быть элементы и равные а[1]
  begin
    a_copy[e]:=a[i];
    dec(e);
  end;
// Все! Осталось только заполнить серединку элементами, равными а[1]
for i:=b to e do
 a_copy[i]:=a[1];
 
В a_copy - результат


 
TUser ©   (2005-10-28 08:37) [3]

Это ж QuickSort недоделанный

var i, j: integer;
    a0: integer;
begin
i:=0; j:=H-1;
a0:=A[0];
repeat
while A[i] < a0 do inc (i);
while A[j] > a0 do dec (j);
if i <= j then begin
Swap (A[i],A[j]);
inc (i); dec (j);
end;
until i < j;
end;



Страницы: 1 вся ветка

Текущий архив: 2005.11.20;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.048 c
8-1120128938
КиТаЯц
2005-06-30 14:55
2005.11.20
Как обрезать картинку?


14-1130527269
01e9
2005-10-28 23:21
2005.11.20
Зацените мою игру (delphiX)


14-1130738720
Loginov Dmitry
2005-10-31 09:05
2005.11.20
Глюк


2-1130628576
alyona
2005-10-30 02:29
2005.11.20
фото альбом


2-1131018364
Vetalich
2005-11-03 14:46
2005.11.20
Время задержки (ping)