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

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

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

 
 Ответить  Открыть новую тему 
> Сортировка с определением номера элемента, Сортировака массива шейкером и прямым выбором
сообщение
Сообщение #1


Гость






Привет!

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

1. Создать массив N=10 заполнить буквами a e r t d w t z, используя метод прямого выбора определить на каждом шаге
в методе прямого выбора номера перемещаемых элементов

2. Создать массив N=10 заполнить буквами a e r t d w t z используя шейкерную сортировку определить на каждом шаге
в методе шейкерной сортировки левую и правую границы сортируемой части массива (L и R).

//Это к первому заданию сортировка массива методом прямого выбора чтото напутала с переменными и не знаю как выполнить задание.
Код

var a: array[1..10] of char;
    j,tmp: char;
    i,n,m:integer;


begin
n:='10';
a[1]:='a';
a[2]:='e';
a[3]:='r';
a[4]:='t';
a[5]:='d';
a[6]:='w';
a[7]:='t';
a[8]:='z';
a[9]:='y';
a[10]:='q';
for i:=1 to n do
write(a[i]:5);
for i:=1 to N-1 do
begin
m:=i;
for j:=i+1 to N do begin
if a[j]<a[m] then
m:=j;
end;
if m<>i then begin
tmp:=a[m];
a[m]:=a[i];
a[i]:=tmp;
end;
End.


//Это к 2му заданию проблемы с ним те же
Код

var a: array[1..10] of char;
    var i,j,k,l,r,x: integer;


begin
n:='10';
a[1]:='a';
a[2]:='e';
a[3]:='r';
a[4]:='t';
a[5]:='d';
a[6]:='w';
a[7]:='t';
a[8]:='z';
a[9]:='y';
a[10]:='q';
for i:=1 to n do
write(a[i]:5);
begin
l:=2;
r:=n;
k:=n;
repeat
for j:=r downto l do begin
if a[j-1]>a[j] then begin
x:=a[j-1];
a[j-1]:=a[j];
a[j]:=x;
k:=j;
end;
end;
l:=k+1;
for j:=l to r do begin
if a[j-1]>a[j] then begin
x:=a[j-1];
a[j-1]:=a[j];
a[j]:=x;
k:=j;
end;
end;
r:=k-1;
until l>r;
end;
End.


 К началу страницы 
+ Ответить 

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

 





- Текстовая версия 29.03.2024 13:21
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name