Сортировка массива методом пузырька на Python

пузырек сортировка
В данной статье мы рассмотрим сортировку методом пузырька, реализованную на языке Python.

Еще статья: Сортировка массива методом выбора на Python
Еще статья: Сортировка массива методом вставки на Python


Описание алгоритма:

Суть этой сортировки заключается в парном сравнении соседних элементов, начиная с нулевого элемента в массиве. В конце первой итерации наибольший элемент оказывается в конце массива, и в последующих итерациях мы его больше не сравниваем с другими элементами (то есть будет проведено n - 1 сравнений). Затем аналогичным образом мы находим второй по величине элемент и помещаем его на предпоследнее место, и так далее. В итоге после всех итераций наименьший элемент окажется на нулевом месте, а наибольший — на последнем. Таким образом, элементы как бы «всплывают» от большего к меньшему.Обратите внимание, что можно также реализовать сортировку от меньшего к большему. В коде это достигается заменой знака «>» на «<» в коде (более подробно см. в примечании ниже).


# Функция сортировки массива методом пузырька
def sort_buble(massiv):
        for i in range(len(massiv)):
            for j in range(len(massiv)-1-i):

                # Проверяем соседние элементы и меняем если нужно
                if massiv[j]<massiv[j+1]:
                    massiv[j+1],massiv[j]=massiv[j],massiv[j+1]
       
        # Возвращаем отсортированный массив
        return massiv

# Тестируем

def test():
    print("Tест1",sort_buble([10,7,4,1,2,5,3,9,6,8]))
    print("Tест2",sort_buble([1,4,7,10,2,5,8,3,6,9]))
    print("Tест3",sort_buble([1,3,5,7,9,10,8,6,4,2]))

# Запуск программы
test()


Результат работы программы.


сортировка пузырьком результат





Исходник программы:

Cкачать из Облака

Еще алгоритмы тут: Алгоритмы.

Комментарии

Отправить комментарий

Популярные сообщения из этого блога

Программа на Python для Ханойской башни

Нахождение НОК (наименьшее общее кратное) в Python

Поиск простых чисел в диапазоне от 1 до 100

Бинарный поиск (также известный как двоичный поиск или метод половинного деления)

Как найти наибольший общий делитель (НОД) в Python

Перебор (перестановка) чисел на Pyton

Перевод числа из десятичной системы в двоичную (бинарную) на Python

Сортировка массива методом выбора на Python

Сортировка массива методом вставки на Python