Алгоритм сортировки пузырьком позволяет упорядочить и отсортировать набор чисел в порядке возрастания. Почему же метод так называется?
В процессе его работы происходит попарное сравнение соседних элементов списка. Если первый элемент больше второго, то они меняются местами. Чтобы избежать сбоя или ошибки, осуществляется несколько таких проходов со сравнением элементов в массиве. Так, большие элементы постепенно передвигаются в конец списка, а меньшие — в начало. Получается некий «пузырьковый эффект», где более «легкие» элементы устремляются на поверхность, а «тяжелые» опускаются на дно.
Чтобы использовать сортировку методом пузырька, нужно воспользоваться двумя циклами:
Во внешнем цикле количество проходов определяется длиной списка элементов минус 1, поскольку в процессе сравнения берется первое число и сравнивается с каждым из последующих.
В внутреннем цикле количество проходов зависит от номера итераций внешнего цикла, поскольку конец списка уже отсортирован и совершать проходы по этим числам нет никакого смысла.
Необходимо отсортировать следующие элементы [24, 86, 12, 9, 33]
Первый проход:
В первой итерации получаем [24, 12, 9, 33, 86].
Второй проход:
Во второй итерации потребуется три прохода, поскольку число 86 уже стоит на своем месте. Получаем [12, 9, 24, 33, 86].
Третий проход:
В третьей итерации потребуется два прохода, поскольку 86 и 33 стоят уже на своих местах. Получаем [9, 12, 24, 33, 86].
Четвертый проход:
В четвертой итерации потребуется 1 проход, поскольку остальные числа уже стоят на своих местах. Получаем [9, 12, 24, 33, 86].
# bubble sort_for def bubble_sort(array): length = len(array) for i in range(0, length): for j in range(0, length - i - 1): if array[j] > array[j + 1]: temp = array[j] array[j] = array[j + 1] array[j + 1] = temp print("Sort") arr = [] n = int(input("Array length: ")) for i in range(0, n): element = int(input("arr[" + str(i + 1) + "] = ")) arr.append(element) bubble_sort(arr) print("Sorted array: ") print(arr)
Результат работы программы:
Sort Array length: 9 arr[1] = 9 arr[2] = 7 arr[3] = 5 arr[4] = 1 arr[5] = 4 arr[6] = 3 arr[7] = 6 arr[8] = 2 arr[9] = 8 Sorted array: [1, 2, 3, 4, 5, 6, 7, 8, 9] Press any key to continue...
# bubble sort_while a = [] number = int(input("the Total Number of Elements : ")) for i in range(number): value = int(input("Enter %d Element of List1 : " %i)) a.append(value) i = 0 while(i < number -1): j = 0 while(j < number - i - 1): if(a[j] > a[j + 1]): temp = a[j] a[j] = a[j + 1] a[j + 1] = temp j = j + 1 i = i + 1 print("The Sorted List in Ascending Order : ", a)
Результат работы программы:
Please Enter the Total Number of Elements : 5 Please enter the 0 Element of List1 : 4 Please enter the 1 Element of List1 : 2 Please enter the 2 Element of List1 : 8 Please enter the 3 Element of List1 : 9 Please enter the 4 Element of List1 : 3 The Sorted List in Ascending Order : [2, 3, 4, 8, 9]
Как мы выяснили, алгоритм сортировки пузырьком действует по двойному циклу — внешнему (количество проходов) и внутреннему (по парам сравниваемых элементов). Сортировка требует (n-1) (n-1) операций, а это значит, что временная сложность алгоритма оценивается как O(n2). Метод эффективен для небольших массивов данных.
Прокси (proxy), или прокси-сервер — это программа-посредник, которая обеспечивает соединение между пользователем и интернет-ресурсом. Принцип…
Согласитесь, было бы неплохо соединить в одно сайт и приложение для смартфона. Если вы еще…
Повсеместное распространение смартфонов привело к огромному спросу на мобильные игры и приложения. Миллиарды пользователей гаджетов…
В перечне популярных чат-ботов с искусственным интеллектом Google Bard (Gemini) еще не пользуется такой популярностью…
Скрипт (англ. — сценарий), — это небольшая программа, как правило, для веб-интерфейса, выполняющая определенную задачу.…
Дедлайн (от англ. deadline — «крайний срок») — это конечная дата стачи проекта или задачи…