![]() |
Объясните методы сортировки массивов( для идиотки)
Прочитала тысячу раз статью, погуглила, но код дают частичный. Меня интересует как именно нужно объявить переменные в случае сортировки выбором и пузырьковой. Авторы не объясняют новых переменных, все скомкано как-то=((
Вот как они описывают метод выбора: min:=m[1]; t:=1; FOR i:=1 to 10 do if m[i]><m[t] then t:=j; buf:=m[t]; m[t]:=m[i]; m[i]:=buf; end; Я НЕ ПОНИМАЮ что за переменная buf, какой ее тип! Нужно ли объявлять m[t] и что за переменная j? На мой вариант, естественно, компилятор матюкается. Program massivv; var mas: ARRAY[1..10] of real; i: integer; t: integer; min: integer; j: boolean; buf: integer; begin FOR i:=1 to 10 do begin Writeln('Введите элемент последовательности N: ',i); Readln(mas[i]); end; min:=mas[1]; t:=1; FOR i:=1 to 10 do if mas[i]><mas[t] then t:=j; buf:=mas[t]; mas[t]:=mas[i]; mas[i]:=buf; end; end. Хотелось бы также увидеть полную версию сортировки методом вставки и особенно пузырьковой. Если кто-то не полениться написать, буду очень благодарна, если есть ссылки-дайте пожалуйста:молись: |
Цитата:
Цитата:
Цитата:
BubbleSort http://www.softpanorama.org/Algorithms/Sorting/bubblesort.shtml Тут есть и другие методы http://www.softpanorama.org/Algorithms/sorting.shtml Правда, всё на C, но понять можно. Знал бы Паскаль - переделки на пару минут... Цитата:
|
почитайте тут: http://algolist.manual.ru/sort/index.php
|
В первом приведёном коде ни одного begin, но end есть. Неудивительно, что компилятор ругается.
|
Цитата:
Цитата:
j - boolean, т.е. True\False t - он integer buf - видимо сокращение от buffer - т.е. используется как переменная для временного хранения данного Цитата:
mas на месте i идёт в mas на месте t то что оказалось в buf идёт в mas на месте i ______________ т.е. mas[t] и mas[i] меняются местами Напиши подробнее что требуется сделать, что дано и т.п. |
Всем спасибо, просветление наступило.Вот я сделала пузырьковым методом:
Program sortirov_puzirok; var m: array[1..5] of integer; ind: boolean; i: integer; buf: integer; begin For i:=1 to 5 do begin Writeln('Введите число последовательности N: ',i); Readln(m[i]); end; Repeat ind:=true; For i:=1 to 4 do if m[i]>m[i+1] then begin buf:=m[i]; m[i]:=m[i+1]; m[i+1]:=buf; ind:=false; end; until ind; Writeln('Результат сортировки по возрастанию: '); For i:=1 to 5 do Writeln(m[i]); end. __________ с сортировкой выбором так ничего не получается=((уже все методы перепробовала, кроме правильного ^^. |
Цитата:
http://ru.wikipedia.org/wiki/%D0%A1%...80%D0%BE%D0%BC Цитата:
Код:
for i := 1 to n - 1 do Цитата:
Ты смотришь на каждую по очереди и сравниваешь с оставшимися в ряду у кого самая красивая сумочка. Если нашла, то меняешь их местами. В первый заход на первом месте оказыается девушка с самой красивой сумочкой. Во второй на втором оказывается менее красивая сумочка и так далее..... В последний заход ты сравниваешь сумочки девушек на предпоследнем и последнем месте в ряду. |
М-да, а как на сумочках сортировку вставкой объяснить? :) Пузырек мне понравился, мож так мне его студентам объяснять :)
Девушке совет - делайте отступы, а то ни фига не понятно. |
AlgualKi, а ты на колечках или кофточках..
Отступы форум убирает. А так - обязательно. И закомментировать то что стало понятно! Да, кстати, это был не пузырёк, а сортировка выбором. |
|
CheshireCat, спасибо за забавные объяснения, смеялась долго)В целом я понимала алгоритм, а вот написать программу не удавалось. В коде нашла две ошибки, но все теперь работает!
AlqualKi, студентам желательно так не объяснять, иначе они будут умственно оболванены. |
Levilaulada ну и отлично, пожалуйста.
Там дальше рекурсии пойдут, поинтеры всякие.. :) |
Часовой пояс GMT +4, время: 01:11. |
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.