Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Центр помощи > [FAQ][Pascal|C++|VB|C#] Сортировка массива методом "пузырька" |
Автор: THandle 13.3.2008, 12:44 | ||||||
Сортировка массива методом пузырька. Алгоритм сортировки такой: Берутся два рядом стоящих элемента массива, и если элемент с меньшим индексом больше элемента с большим индексом, то они меняются местами. Эти действия происхдят до тех пор, пока массив не будет отсортирован. Алгоритм проходит по массиву от начала до конца. В процессе работы алгоритма находится элемент с максимальным значением, который помещается в конец массива, поэтому каждый раз количество просматриваемых сортировкой элементов массива уменьшается на 1. Каждый раз на своё место становится хотя бы один элемент массива, поэтому количество проходов по нему равно количеству элементов в массиве. Алгоритм называется пузырьковым, так как максимальный элемент массива как бы всплывает наверх. Пример на Паскале:
Пример на С++:
Пример на Visual Basic:
Авторы: http://vingrad.ru/@THandle - идея, теория, пример на Pascal, пример на С++. http://vingrad.ru/@Rrader - пример на С++, пример на VB. Пример сортировки на С# смотрите в конце темы. |
Автор: JackYF 13.3.2008, 20:58 | ||
Мой вариант исходника на С++:
|
Автор: THandle 13.3.2008, 21:06 |
JackYF, спасибо. +1. |
Автор: inside_pointer 19.3.2008, 09:19 | ||
С инета
|
Автор: Rrader 7.5.2008, 14:27 | ||
Ещё мой вариант на C#:
|
Автор: THandle 8.5.2008, 09:37 |
Rrader, ![]() Название темы поменял с: [FAQ][Pascal|C++|VB] Сортировка массива методом "пузырька" на: [FAQ][Pascal|C++|VB|C#] Сортировка массива методом "пузырька" Давайте еще киньте кто-нибудь на Яве. На ассемблере может быть напишу ![]() |
Автор: Ripper 8.5.2008, 17:30 |
В википедии там на многих языках написано уже все %) |
Автор: Stqs 6.7.2008, 16:44 | ||
вот Java
|
Автор: iff 5.11.2010, 20:28 | ||
Компилятор TASM, для DOS, для Intel8086+. Сортировка массива однобайтных знаковых чисел по возрастанию.
Обратите внимание на инструкцию в строке 17. При использовании других инструкций условного перехода можно изменить принцип сортировки: JA - беззнаковые числа по убыванию JB - беззнаковые числа по возрастанию JG - знаковые числа по убыванию JL - знаковые числа по возрастанию |
Автор: iff 5.11.2010, 20:59 |
При сортировки масиива слов (длина элементов - 2 байта). Следует изменить строки: в 4-ой - заменить $ - OFFSET Arr на ($ - OFFSET Arr) / 2 в 16-ой и в 18-ой - заменить [DI+1] на [DI+2] в 20-ой - добавить ещё одну инструкцию INC DI |
Автор: igorrr37 21.12.2010, 03:44 |
>поэтому количество проходов по нему равно количеству элементов в массиве. Если в массиве два элемента, по нему достаточно пройти один раз, если три-два раза, т.е. число проходов на единицу меньше числа элементов. |
Автор: feodorv 28.2.2014, 17:32 | ||
Здесь присутствует выход за пределы массива: когда i есть 0, а j становится MAX-1, имеем arr[MAX]. А вот здесь выхода за пределы массива нет))) |
Автор: futamator 6.2.2017, 23:20 |
Благодарю за такую статейку. Весьма полезно для новичков и не только) |
Автор: jangogo 5.9.2017, 11:27 |
Спасибо, ребята! Большое дело делаете!) Добавлено через 1 минуту и 45 секунд Спасибо, ребята! Большое дело делаете!) |