плохо искалНа С++ написал потому,что в инете только для него нашол реализацию этого алгоритма.
Procedure Shakesort;
var
J,K,L,R : Index;
X : Item;
begin
L :=2;
R :=N;
K :=N;
repeat
for J :=R downto L do
if A[J - 1].Key > A[J].Key then
begin
X :=A[J - 1];
A[J - 1] :=A[J];
A[J] :=X;
K :=J;
end;
L :=K+1;
for J :=L to R do
if A[J - 1].Key > A[J].Key then
begin
X :=A[J - 1];
A[J - 1] :=A[J];
A[J] :=X;
K :=J;
end;
R :=K - 1;
until L > R;
end;
Читал только про один метод сортировки пузырьком, суть которого была в том что сравниваются два соседних елемента, и если их розмещение не отвечает критериям сортировки то они переставляются. Смотри пример:мне нужно именно этот алгоритм! Если б можна было любой, я б не написал бы сюда. В условии задачи указано, что нужно использовать "эфеективный метод пузырька". На С++ написал потому,что в инете только для него нашол реализацию этого алгоритма.
з.ы. тут не идется про эффективность данного метода. Просто есть 2 разновидности метода "пузырька" и мне нужно тот, который более эффективный (см код на С++ выше).
...
for i:=0 to 5 do
if (mas[i]>mas[i+1])
begin
mas[i]:=j;
mas[i]:=mas[i+1];
mas[i+1]:=j;
end;
...
В тему, хоть и не паскаль. Наталкивался на ассемблерный код quicksorta. Почти любой рекурсивный алгоритм может быть реализован циклами. Что и было сделано, вдобавок были использованы метки и джампы (куда без них в нем?). "И никакого кипячения". Почему бы не реализовать циклами quicksort и тут?А время уходящее на вызовы функции, если говорить о классических компилируемых языках программирования? Все же процессорное время уходящее на вызов функции как-никак гораздо больше чем даже традиционнно считающаяся ресурсоемкой операция деления.
я предложил рекурсивную версию в качестве сортировки на олимпиадах (ну или стыдно писать пузырёк)Почему бы не реализовать циклами quicksort и тут?
Кстати об олимпиадах
Часто эффективностью стоит пожертвовать в угоду простоте и читабельности.
Именно поэтому если на олимпиаде нужна была сортировка я писал сортировку вставкамия предложил рекурсивную версию в качестве сортировки на олимпиадах (ну или стыдно писать пузырёк)
в моём понимании на олимпиаде нужно писать быстро и как можно просто
и на каком этапе проблема ?люди, помогите вот с таким зданием: надо считать с текстового файла целые числа в список, найти среднее арифметическое,
потом найти первый елемент который меньше сред.арифметического и вставить 10.