IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Методы сортировок. Вставка, выбор + ...
CORS@R
сообщение 18.02.2006 23:58
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 37
Пол: Мужской
Реальное имя: Рамиль

Репутация: -  0  +


Для метода пузырька, вставок и выбора посчитать число сравнений и число перестановок. Для метода пузырька я это сделал но для метода вставок не знаю как посчитать сравнения а для метода выбора - число перестановок. Помогите пожалуйста


uses crt;
const n=6;
var i,j,peres,k,temp,srav,otv:integer;
a: array [1..n] of integer;
procedure puzyr;
begin
peres:=0;
srav:=0;
writeln('Vvedi elem mas: ');
for i:=1 to n do
readln(a[i]);
for i := 2 to n do
begin
for j := n downto i do
begin
inc(srav);
if a[j-1] > a[j] then
begin
temp := a[j-1];
a[j-1] := a[j];
a[j] := temp;
inc(peres);
end;
end;
end;
writeln('Sortirovka');
for i:=1 to n do
writeln(a[i]);
writeln('Chislo perestanovok = ',peres);
writeln('Chislo sravneniy = ',srav);
readln;
end;

procedure vstavka;
begin
peres:=0;
srav:=0;
writeln('Vvedi elem mas: ');
for i:=1 to n do
readln(a[i]);
for i := 2 to n do
begin
temp := a [i];
j := i-1;
While (j > 0) and (temp < a [j] ) do
begin
a [j+1] := a [j];
j := j-1;
inc(peres);
end;
a [j+1] := temp;
end;
writeln('Sortirovka');
for i:=1 to n do
writeln(a[i]);
writeln('Chislo perestanovok = ',peres);
writeln('Chislo sravneniy = ',srav);
readln;
end;

procedure vybor;
begin
peres:=0;
srav:=0;
writeln('Vvedi elem mas: ');
for i:=1 to n do
readln(a[i]);
for i := 1 to n-1 do
begin
k := i;
temp := a [i];
for j := i+1 to n do
begin
inc(srav);
if a [j] < temp then
begin
k := j;
temp := a [j];
end;
end;
a [k] := a [i];
a [i] := temp;
end;
writeln('Sortirovka');
for i:=1 to n do
writeln(a[i]);
writeln('Chislo perestanovok = ',peres);
writeln('Chislo sravneniy = ',srav);
readln;
end;

begin
clrscr;
repeat
begin
writeln('1-Puzyr 2-Vstavka 3-Vybor 4-Exit ');
readln(otv);
case otv of
1:puzyr;
2:vstavka;
3:vybor;
4:end;
end;
until otv=4;
end.



Забыл написать что должно получиться для массива 15-33-42-07-12-19: метод вставок 12 сравнений и 8 перестановок, метод выбора 15 сравнений, 4 перестановки

Сообщение отредактировано: CORS@R - 19.02.2006 0:06
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
CORS@R
сообщение 19.02.2006 0:26
Сообщение #2


Новичок
*

Группа: Пользователи
Сообщений: 37
Пол: Мужской
Реальное имя: Рамиль

Репутация: -  0  +


За метод вставок спасибо good.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 20.07.2025 11:07
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"