Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
8 / 7 / 2
Регистрация: 08.12.2020
Сообщений: 118

Сортировка пузырьком

19.05.2021, 20:33. Показов 1437. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет, не могу понять, почему проходит только один этап сортировки (сортируется одно число, остальные остаются на месте). [1.5, 2.2, 3.14, 5.56, 7.62, 9.22, 3234.1] ----[1.5, 2.2, 3.14, 33.4, 5.56, 7.62, 9.22] после некоторых преобразований. Должна быть сортировка abs((main_list[i]-main_lisk[k]), которое в данном случае равно 33.4), но в конце получается следующее: [2.2, 3.14, 33.4, 5.56, 7.62, 9.22, 1.5] (только 1.5 ушло куда нужно), просидел 15 минут, так и не понял.
count = 7, min_i = 0, max_i = 6
Помогите(
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
def New(main_list, min_i, max_i, count):
    print ("Enter a value in the range from  ", main_list[min_i] , " to ", main_list[max_i], ": ")
    number = float (input())   
    k = min_i + (max_i - min_i) // 2
    rr = count
    count = count -2
    while count>k-1:
        main_list[count+1] = main_list[count]
        count=count-1
    main_list[k] = number
    print (main_list, "---------")
    i = 0 
    j = 0
    while i<rr-1:
        while j<rr - i - 1:
            if abs(main_list[j]-number) > abs(main_list[j+1]-number):
                temp = main_list[j+1]
                main_list [j+1] = main_list[j]
                main_list[j]=temp
            j=j+1
        i=i+1
    return main_list
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
19.05.2021, 20:33
Ответы с готовыми решениями:

Сортировка пузырьком
Все просто, вам поступает число n - количество элементов в списке, и затем сам список. Ваша задача отсортировать список по возрастанию...

Сортировка пузырьком по невозрастанию
Дан список целых чисел. Отсортируйте его в порядке невозрастания значений. Выведите полученный список на экран. Решите эту задачу при...

Улучшенная сортировка пузырьком
Сортирую массив array от меньшего к большему но обхожу с конца. Хочу улучшить алгоритм. Чтобы если последний обмен был раньше чем граница,...

2
Эксперт Python
8851 / 4502 / 1864
Регистрация: 27.03.2020
Сообщений: 7,317
19.05.2021, 20:45
Лучший ответ Сообщение было отмечено colomb как решение

Решение

colomb, j=0 перенеси между двумя while
1
Эксперт Python
1356 / 653 / 207
Регистрация: 23.03.2014
Сообщений: 3,057
19.05.2021, 20:57
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
from random import randrange
from time import sleep
import tkinter as tk
 
root = tk.Tk()
canvas = tk.Canvas(root, bg='white', width='800', height='400')
canvas.pack()
 
ndigits = 10
digits = [randrange(10) for _ in range(ndigits)]
tdelta1, tdelta2 = .8, .2
xstart = 300
xdelta = 25
y = 80
 
 
def color(i, swap):
    x = xstart + xdelta * i
    dcolor = 'Red' if swap else 'green'
    canvas.itemconfigure(items[i], fill=dcolor)
    canvas.itemconfigure(items[i + 1], fill=dcolor)
    canvas.update()
    sleep(tdelta1)
    canvas.itemconfigure(items[i], fill='Black')
    canvas.itemconfigure(items[i + 1], fill='Black')
    canvas.update()
    sleep(tdelta2)
 
 
def swap(i):
    digits[i], digits[i + 1] = digits[i + 1], digits[i]
    canvas.move(items[i], xdelta, 0)
    canvas.move(items[i + 1], -xdelta, 0)
    items[i], items[i + 1] = items[i + 1], items[i]
 
 
def bubsort():
    for stop in reversed(range(1, ndigits)):
        # stop = index of position whose entry will be determined.
        for i in range(stop):
            swap_needed = digits[i] > digits[i + 1]
            color(i, swap_needed)
            if swap_needed:
                swap(i)
                color(i, False)
 
 
# Create display items and pause.
items = [canvas.create_text(xstart + xdelta * i, y, text=str(digit))
         for i, digit in enumerate(digits)]
canvas.update()
sleep(tdelta1)
bubsort()
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
19.05.2021, 20:57
Помогаю со студенческими работами здесь

Сортировка пузырьком в две строки
привет помогите с задачкой пожалуйста надо чтобы была сортировка в 2 строки а получается в 10 from random import randint N = 10 A =...

Сортировка пузырьком и бинарный поиск
Помоги выполнить. Написать программу, сортирующую пузырьком целочисленный массив и выполняющую бинарный поиск поиск по нему . Размер...

Сортировка студентов группы по алфавиту (пузырьком)
Написать программу, сортирующую студентов группы по алфавиту и использующую сортировку пузырьком.

Сортировка пузырьком, добавить ввод данных пользователем
задать пользовательский ввод чисел A def BubbleSort(A): for i in reversed(range(len(A) + 1)): flag = True ...

Сортировка пузырьком элементов, стоящих на непарных местах
Дан список целых чисел, заданных случайным образом. Количество элементов вводится с клавиатуры. Изменить метод пузырька таким образом,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru