Помощь - Поиск - Пользователи - Календарь
Полная версия: Задачи по сортировке
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
gooddron123
Вообщем, как я уже говорил, дал нам препод задание: напишите, любезные, «пузырьковую сортировку», «сортировку вставками» и «всплытием Флойда».
Пузырьковую я еще в школе писал, с Флойдом разобрался вроде. Взял, вот алгоритм «вставками» с вашего фака:
Код

Program sortirovka;
uses crt;
var
 a:array[1..1000] of integer;
 n,i,j,t,m,k,copy:integer;
 change:boolean;
procedure Insert;{tested}
begin
    for i:=1 to n do
    begin
 t:=a[i];
   j:=pred(i);
   While (t<a[j])and(j>=0) do
   begin
       a[succ(j)]:=a[j];
         dec(j);
   end;
   a[succ(j)]:=t;
    end;
end;{Insert}
begin
 ClrScr;
 Writeln('Введите размер массива');
 Readln(n);
 Writeln('Введите элементы массива');
 For i:=1 to n do Read(a[i]);
 Writeln('Неотсортированный массив');
 For i:=1 to n do write(a[i],' ');
 Writeln;
 Insert;
 Writeln('Отсортированный массив');
 For i:=1 to n do write(a[i],' ');
 Writeln;
 Readkey;
end.

В итоге, при вводе, к примеру, чисел
1,5,2,7,4,5
выдает следующий результат:
2,4,5,5,7,69
И так всегда - наименьшее число заменяется на 69 sad.gif((. Объясните, плиз, в чем ошибка.
Еще задачка:
Из неупорядоченного числового массива А(m) получить упорядоченный по возрастанию массив D(n) (n<=m) следующим образом. Выбрать в А наименьший элемент и поместить его в D, затем наименьший из оставшихся и т.д. повторяющиеся эл-ты включать единожды, массив А сохранить. Сделать надо так, чтобы в решении можно было использовать любую из трех процедур.
Вроде бы ничего сложного, а я вот не соображу… sad.gif напишите пару строк по поводу как это организовать, если несложно, а уж код я напишу как-нибудь.
Заранее спасибо.
volvo
Цитата(gooddron123 @ 26.02.05 13:38)
Взял, вот алгоритм «вставками» с вашего фака:
Код
procedure Insert;{tested}
begin
end;

... Объясните, плиз, в чем ошибка.

Ошибка у Вас в программе... Вы не взяли нашу процедуру из ФАКа, Вы взяли и переделали ее... Вы что же, думаете, я зря описываю параметры? Моя процедура работает. Только что проверил еще раз...
gooddron123
Цитата(volvo @ 26.02.05 14:55)
Ошибка у Вас в программе... Вы не взяли нашу процедуру из ФАКа, Вы взяли и переделали ее... Вы что же, думаете, я зря описываю параметры? Моя процедура работает. Только что проверил еще раз...

Действительно sad.gif
Извините sad.gif
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.