Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
51 / 51 / 18
Регистрация: 03.12.2015
Сообщений: 167

Сортировка слиянием без взятия среза

15.01.2016, 22:19. Показов 2522. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
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
def mergeSort(alist):
    if len(alist) > 1:
        mid = len(alist) // 2
        lefthalf = alist[:mid]
        righthalf = alist[mid:]
 
        mergeSort(lefthalf)
        mergeSort(righthalf)
 
        i = j = k = 0
        while i < len(lefthalf) and j < len(righthalf):
            if lefthalf[i] < righthalf[j]:
                alist[k] = lefthalf[i]
                i += 1
            else:
                alist[k] = righthalf[j]
                j += 1
            k += 1
 
        while i < len(lefthalf):
            alist[k] = lefthalf[i]
            i += 1
            k += 1
 
        while j < len(righthalf):
            alist[k] = righthalf[j]
            j += 1
            k += 1
Как переделать алгоритм, чтобы в функции не брались срезы? В книжке написано, мол нужно сделать так, чтобы mergeSort принимала 3 аргумента: сам список + начальный и конечный индексы. Окей. Но это повлечет за собой изменение вообще всего алгоритма, тк никаких lefthalf и righthalf больше не будет. Нужно будет оперировать не отдельными списками, а индексами. Сейчас у нас на каждом цикле рекурсии как бы 3 независимых списка, сравниваются 2, а изменения происходят в третьем. А если не будет срезов, то и сравнение, и изменение нужно будет делать в одном-единственном списке, а это приведет к затиранию одних значений другими, значит, нужно где-то эти значения хранить, а потом вставлять и тд и тп.. Короче я так и не понял, как сделать. Пробовал по-разному, но в любом случае появляется необходимость в дополнительных списках, а это убивает всю выгоду, полученную путем избавления от срезов.
В книге сказано, мол это вообще просто, сделай сам.

Добавлено через 6 минут
omg, я дурак. Надо было сначала гуглить. Вопрос закрыт
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
15.01.2016, 22:19
Ответы с готовыми решениями:

Сортировка выбором, Сортировка простыми вставками, Сортировка пузырьком, Сортировка слиянием, Быстрая сортировка Хоара
Имеется список товаров, хранящихся на базе. Каждая строка этого списка содержит: инвентарный номер товара; количество видов этого товара;...

Сортировка слиянием (без рекурсии)
Нужно реализовать сортировку слиянием (не через рекурсия) , как можно проще, при этом массив задаётся рандомно. Помогите пожалуйста!

Сортировка слиянием без потоков
#include &lt;stdio.h&gt; #include &lt;values.h&gt; #include &lt;conio.h&gt; #include &lt;stdlib.h&gt; int *a,m,e; int sort(int l, int r){ if...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
15.01.2016, 22:19
Помогаю со студенческими работами здесь

Сортировка слиянием (Mergesort) без использования массивов и векторов
Всем Привет, нужна помощь в написании алгоритма. Есть файл с n-ым количество чисел разделенные только пробелом. Нужно разделить числа в...

С++ Сортировка слиянием Отсортируйте данный массив, используя сортировку слиянием
Помогите пожалуйста :') Сортировка слиянием Отсортируйте данный массив, используя сортировку слиянием. Попробуйте написать свою...

Сортировка слиянием. В чем отличие рекурсивной сортировки слиянием от не рекурсивной?
Можете объяснить код static void Merge(int array, int lowIndex, int middleIndex, int highIndex) { var left = lowIndex; ...

Сортировка слиянием. В каком куске кода происходит сортировка и каким именно образом?
Помогите, пожалуйста, разобраться. Подскажите в каком куске кода происходит сортировка и каким именно образом? #include &lt;iostream&gt; ...

Сортировка Слиянием vs Быстрая Сортировка - что лучше
Народ, помогите разобраться какой из методов сортировки лучше &quot;Сортировка Слиянием&quot; или &quot;Быстрая Сортировка&quot;: у быстрой...


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

Или воспользуйтесь поиском по форуму:
1
Закрытая тема Создать тему
Новые блоги и статьи
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru