С Новым годом! Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.68/25: Рейтинг темы: голосов - 25, средняя оценка - 4.68
1 / 0 / 1
Регистрация: 03.05.2020
Сообщений: 34

Сортировка массива методом Шелла

27.09.2020, 12:24. Показов 5069. Ответов 1

Студворк — интернет-сервис помощи студентам
Здравствуйте, вот такое мне дали задание в унике:
Необходимо создать функцию, осуществляющую сортировку массива по заданному алгоритму (см. вариант задания). Элементами массива являются значения, записанные в файл из задания 1. Отсортированный массив записывается в тот же файл. Сравнить время выполнения сортировки разработанной функции и стандартными средствами Python(например, функцией sorted()).
Поизучав сортировку шеллом, я понял как это работает, но написать программу для такой сортировки не смог.
В интернете нашел вот такой код:
Python
1
2
3
4
5
6
7
8
9
10
def shell(data):
    inc = len(data) // 2
    while inc:
        for i, el in enumerate(data):
            while i >= inc and data[i - inc] > el:
                data[i] = data[i - inc]
                i -= inc
            data[i] = el
        inc = 1 if inc == 2 else int(inc * 5.0 / 11)
    return data
И вот не могу в нем разобраться, i это номер элемента или сам элемент, или el это номер элемента.
ПОМОГИТЕ РАЗОБРАТЬСЯ С ТЕМ, КАК РАБОТАЕТ ЭТОТ КОД!!!
НА ПРИМЕРЕ
Python
1
2
3
data = [1,3,2,5,4]
shell(data)
print(data)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
27.09.2020, 12:24
Ответы с готовыми решениями:

Сортировка Методом Шелла
Подскажите пожалуйста как будет выглядеть сортировка Методом Шелла

Сортировка массива методом камня
Напишите программу, которая сортирует массив по возрастанию "методом камня": аналогично "методу пузырька", но в обратном порядке:...

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

1
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7390 / 4817 / 1246
Регистрация: 30.03.2015
Сообщений: 13,664
Записей в блоге: 29
27.09.2020, 12:26
Цитата Сообщение от stranger2287 Посмотреть сообщение
И вот не могу в нем разобраться, i это номер элемента или сам элемент, или el это номер элемента.
документация вроде ни от кого не скрыта
https://docs.python.org/3/libr... #enumerate
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
27.09.2020, 12:26
Помогаю со студенческими работами здесь

Сортировка массива методом пузырька с флажком
Напишите программу, которая сортирует массив, используя метод "пузырька" с флажком. Флажок (логическая переменная) показывает, была ли хотя...

Сортировка массивов по методу Шелла. Только блок-схема
Дана квадратная матрица размерности n×n. Напечатайте элементы боковой диагонали в порядке возрастания. Методом Шелла и только Блок-схема

Сортировка массива каждым из 3 способов (пузырьковая сортировка, сортировка выбором, сортировка вставкой)
1. Напишите программу, которая выполняет следующие функции: • заполнение элементов массива вещественными числами с заданной ...

Сортировка массива методом выбора и методом Шелла (и сравнение результатов)
помоги пожалуйста. есть массив Dim x() As Long Dim per As Integer Dim a, b, n As Integer a = 10 b = 99 n = 25 ReDim x(n -...

Сортировка Шелла и методом выбора: изменить код, чтобы сортировка происходила с конца массива, а не с начала
Есть 2 функции, нужно сделать так что бы сортировки проходили с конца массива. Много чего перепробовал, не могу понять что нужно изменить...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru