Pascal - массив

  • Автор темы progm
  • Дата начала
Статус
Закрыто для дальнейших ответов.
P

progm

Здравствуйте уважаемые программисты, столкнулся с проблемой сортировки массива. Помогите пожалуйста понять. Ситуация такая: есть массив a надо отсортировать его так, чтобы сначала шли четные, а потом нечетные числа.
Я уже пробовал, вот мои мысли:
if a mod 2=0 then
{тогда этот элемент идет на первое мест, т.е. на a[1]}

Только до меня не дойдет как сделать такой цикл. Помогите пожалуйста.
 
G

grigsoft

Сделай сначала простую классическую сортировку по возрастанию - а потом подправишь функцию сравнения.
 
P

progm

Спасибо, почти получилось, только столкнулся с проблемкой... Не сортируется последний элемент массива, т.е. если он ченый все равно остается на месте. Как быть в такой ситуации?

Сортировал пузырьком. вот код:

Код:
for p:=1 to k-1 do
for i:=1 to k-p do
if a[i] mod 2=0 then
begin
n:=a[i-1];
a[i-1]:=a[i];
a[i]:=n;
end;

a - массив, k элементов в массиве
 
G

grigsoft

Полагаю, медитация над первой строчкой кода поможет решить проблему.
 
P

progm

Ну да, извините, поспешил спрашивать...
А сейчас еще вопрос возник. :( Как теперь надо прописать сортировку полученного массива в таком плане:
четные числа этого массива отсортировать по убыванию..
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!