Вопрос № 173887: Уважаемые эксперты,помогите решить задачку. Дан одномерный массив. Отсортировать элементы массва в порядке возрастания методом "пузырька"...
Вопрос № 173887:
Уважаемые эксперты,помогите решить задачку. Дан одномерный массив. Отсортировать элементы массва в порядке возрастания методом "пузырька"
Отвечает LfiN, 8-й класс :
Здравствуйте, Ропов Алексей. Для начала вспомним идею этого метода: шаг сортировки состоит в проходе снизу вверх по массиву. По пути просматриваются пары соседних элементов. Если элементы некоторой пары находятся в неправильном порядке, то меняем их местами.
Код:
program q173887; {Упорядочивание
элементов в массиве по возрастанию их значений} var i,n,j:integer; b:word; y:array [1..100] of word; begin WriteLn('Введите размер массива: '); ReadLn(n); for i:=1 to n do begin Write('y=[',i,']='); ReadLn(y[i]); end; WriteLn('массив у '); for i:=1 to n do write(y[i],' '); WriteLn; for j:=1 to n-1 do for i:=1 to n-j do
if y[i]>y[i+1] then {Если текущий элемент больше следующего, то} begin{меняем их местами} b:=y[i];{Сохраняем текущее значение элемента} y[i]:=y[i+1];{Заменяем текущий элемент следующим} y[i+1]:=b;{Заменяем слежующий элемент текущим} end; WriteLn('упорядоченный масссив'); for i:=1 to n do write(y[i],' '); WriteLn; Readln; end.
Ответ отправил: LfiN, 8-й класс
Ответ отправлен: 01.11.2009, 16:52
Оценка ответа: 5
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 256081
на номер 1151 (Россия) |
Еще номера »
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Отвечает Максим Юрьевич, 7-й класс :
Здравствуйте, Ропов Алексей. Метод пузырька получил своё название от того, что самые маленькие (лёгкие) элементы быстро перемещаются к началу массива ("всплывают", как пузырьки). Достигается это проходом по массиву, сравнением соседних элементов. Если элемент с большим индексом оказывается "легче" соседнего элемента с большим индексом, они обмениваются местами. Таким образом, после i-го прохода в начале массива оказываются i самых "лёгких" элементов.