Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.026 c
4-1127037100
Илья Бобров
2005-09-18 13:51
2005.11.20
Как програмно узнать местоположение папки ProgramFiles


3-1128449971
Piter
2005-10-04 22:19
2005.11.20
Primary Key и Unique key


2-1130604470
Win_sido
2005-10-29 20:47
2005.11.20
Delfi 7


4-1126889831
ArtemESC
2005-09-16 20:57
2005.11.20
свойства другого окна


14-1130240015
Некто
2005-10-25 15:33
2005.11.20
Региональные словечки =)




   Наверх