Напишите программу реализующую сортировку пузырьком для списка из 6
случайных натуральных чисел.
Примечание 1. Для генерации списка случайных целых положительных чисел можно
воспользоваться следующий код:
import random
length = 6
x = random.sample(range(0, 10), length)
В данном случае выполняется операция импортирования функций из модуля
random. Функция sample возвращает псевдослучайно сгенерированный список длиной
length, представляющий собой выборку элементов последовательности, генерируемой
итератором range(0, 10, length).
Примечание 2. Небесполезно будет вспомнить, каким образом с помощью кортежа в
Python можно обменять значения двух переменных одной строкой кода.
Примечание 3. Алгоритм пузырьковой сортировки можно немного ускорить. Если
на одном из очередных проходов окажется, что обмены больше не нужны, то это означает,
что все элементы списка находятся на своих местах, то есть список отсортирован. Для
реализации такого ускорения нужно воспользоваться сигнальной меткой, то есть флажком
и оператором прерывания break.
Sample Input (генерируется с помощью random.sample) :
[6, 2, 9, 5, 7, 0]
Sample Output:
проход 1: [2, 6, 5, 7, 0, 9]
проход 2: [2, 5, 6, 0, 7, 9]
проход 3: [2, 5, 0, 6, 7, 9]
проход 4: [2, 0, 5, 6, 7, 9]
проход 5: [0, 2, 5, 6, 7, 9]
Python
Помогите с Python
Код решения задачи:
```
import random
length = 6
lst = random.sample(range(0, 10), length)
for i in range(length-1): # количество проходов
flag = True # флажок для ускорения сортировки
for j in range(length-i-1): # количество сравнений в каждом проходе
if lst[j] > lst[j+1]: # если элемент j больше элемента j+1, то меняем их местами
lst[j], lst[j+1] = lst[j+1], lst[j]
flag = False # если произошла перестановка, то изменяем флажок на False
if flag: # если на проходе не было перестановок, то список уже отсортирован
break
print(lst)
```
Результат работы программы будет разным каждый раз, так как генерация списка случайным образом.
```
import random
length = 6
lst = random.sample(range(0, 10), length)
for i in range(length-1): # количество проходов
flag = True # флажок для ускорения сортировки
for j in range(length-i-1): # количество сравнений в каждом проходе
if lst[j] > lst[j+1]: # если элемент j больше элемента j+1, то меняем их местами
lst[j], lst[j+1] = lst[j+1], lst[j]
flag = False # если произошла перестановка, то изменяем флажок на False
if flag: # если на проходе не было перестановок, то список уже отсортирован
break
print(lst)
```
Результат работы программы будет разным каждый раз, так как генерация списка случайным образом.
У Вас в вопросе есть совершенно дурацкие примечания, но не сказано главного: из какого диапазона брать целые случайные числа (не чем "можно воспользоваться" (а можно, кстати, и не воспользоваться !), а конкретно целые числа из какого множества выбираются?) и в каком порядке их сортировать (не "можно немного ускорить", а как сортировать? в каком конкретно порядке?). Короче, делать то вообще что нужно?
Вот пример генерации шести случайных целых чисел, принадлежащих промежутку [a;b] с их последующей пузырьковой сортировкой по возрастанию:
Вот пример генерации шести случайных целых чисел, принадлежащих промежутку [a;b] с их последующей пузырьковой сортировкой по возрастанию:
from random import randint
a, b = map(int, input('a b: ').split())
A = [randint(a, b) for i in range(6)]; print(*A)
for i in range(1, 6):
for j in range(5, i - 1, -1):
if A[j-1] > A[j]: A[j-1], A[j] = A[j], A[j-1]
print(*A); input()

Сортировка пузырьком без тупоумных ботов 

Похожие вопросы
- Помогите с Python, пожалуйста
- Помогите новичку (python)
- Помогите решить (Python)
- Помогите с python написать код
- Помогите с Python, что я тут не правильно написал? Это займет максимум 2 минуты
- Помогите решить Python!!!!
- Помогите с Python
- Пожалуйста, помогите с Python
- Программирование, помогите пожалуйста! Python
- Плиз помогите с Python