С Новым годом! Форум программистов, компьютерный форум, киберфорум
Python
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 1
Регистрация: 21.09.2016
Сообщений: 62
1

Замер времени для MergeSort

09.05.2017, 21:25. Показов 725. Ответов 11

Author24 — интернет-сервис помощи студентам
Есть код, реализующий сортировку слиянием:
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
"""Merge sort."""
 
 
 
def merge(left, right):
    """Merge two lists in ascending order."""
    lst = []
    while left and right:
        if left[0] < right[0]:
            lst.append(left.pop(0))
        else:
            lst.append(right.pop(0))
    if left:
        lst.extend(left)
    if right:
        lst.extend(right)
    return lst
 
 
def mergesort(lst):
    """Sort the list by merging O(n * log n)."""
    length = len(lst)
    if length >= 2:
        mid = int(length / 2)
        lst = merge(mergesort(lst[:mid]), mergesort(lst[mid:]))
    return lst
Данные для сортировки вводятся так:
Python
1
print(''.join(mergesort(list("defgaabcdef"))))
В общем-то все как у товарища accept в теме https://www.cyberforum.ru/python/thread395180.html
Нужно как-то высчитать время, за которое сортируются введенные данные.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
09.05.2017, 21:25
Ответы с готовыми решениями:

Замер времени
Время выполнения программы не соответствует действительности def Find(stackName, element): ##...

Сделать замер времени,которое потребовалось для приема / передачи используя таймер
Здравствуйте, помогите пожалуйста с дополнением кода. Суть моего задания такова: Передать...

Замер времени
Здравствуйте, уважаемые! Замерял время исполнения кода (рекурсия с разными вводными параметрами)...

Замер времени
Работает через раз. #include &lt;conio.h&gt; #include &lt;iostream&gt; #include &lt;time.h&gt; #include...

замер времени
Здравствуйте, необходимо считать время выполнения блоков в delphi, сначала пытался по алгоритму ...

11
145 / 113 / 31
Регистрация: 12.06.2011
Сообщений: 1,245
09.05.2017, 21:31 2
Python
1
2
3
4
import time
start_time = time.time()
''.join(mergesort(list("defgaabcdef")))
print("--- {} seconds ---".format(time.time() - start_time))
0
0 / 0 / 1
Регистрация: 21.09.2016
Сообщений: 62
10.05.2017, 00:23  [ТС] 3
Python
1
''.join(mergesort(list("defgaabcdef")))
а можно как-то вместо этого выбрать количество элементов равными 100, 1000 и так далее?
0
145 / 113 / 31
Регистрация: 12.06.2011
Сообщений: 1,245
10.05.2017, 00:32 4
Цитата Сообщение от ElTonio Посмотреть сообщение
а можно как-то вместо этого выбрать количество элементов равными 100, 1000 и так далее?
Для какой цели? Можно все. Например, можно за каждую секунду платить 100 баксов, например. А за 10 секунд - тысячу. И т.д. У тебя есть точка опоры - ты можешь сдвинуть Землю.
0
0 / 0 / 1
Регистрация: 21.09.2016
Сообщений: 62
10.05.2017, 08:18  [ТС] 5
Цитата Сообщение от Kifsif Посмотреть сообщение
Для какой цели? Можно все. Например, можно за каждую секунду платить 100 баксов, например. А за 10 секунд - тысячу. И т.д. У тебя есть точка опоры - ты можешь сдвинуть Землю.
Просто если массив на миллион значений вручную вводить - питон начинает виснуть еще даже до запуска. Он и так не быстрый, но сейчас даже невозможно запустить
0
757 / 306 / 190
Регистрация: 20.05.2016
Сообщений: 593
10.05.2017, 08:43 6
Обычно используют timeit (в простых случаях), ну и, не знаю, random, быть может
Python
1
2
3
4
5
6
7
8
import random
from timeit import timeit
...
 
lst = random.sample(range(1000000000), 1000000)
 
setup = 'from __main__ import lst, mergesort'
print(timeit("mergesort(lst)", setup, number=1000))
0
0 / 0 / 1
Регистрация: 21.09.2016
Сообщений: 62
10.05.2017, 09:34  [ТС] 7
Цитата Сообщение от shsv Посмотреть сообщение
Обычно используют timeit (в простых случаях), ну и, не знаю, random, быть может
Python
1
2
3
4
5
6
7
8
import random
from timeit import timeit
...
 
lst = random.sample(range(1000000000), 1000000)
 
setup = 'from __main__ import lst, mergesort'
print(timeit("mergesort(lst)", setup, number=1000))
Ругается
Миниатюры
Замер времени для MergeSort  
0
440 / 432 / 159
Регистрация: 21.05.2016
Сообщений: 1,338
10.05.2017, 09:45 8
Цитата Сообщение от ElTonio Посмотреть сообщение
Ругается
первый символ в названии переменной не может быть цифрой
0
0 / 0 / 1
Регистрация: 21.09.2016
Сообщений: 62
10.05.2017, 09:54  [ТС] 9
Цитата Сообщение от oldnewyear Посмотреть сообщение
может быть цифрой
поставил единичку в коней имени переменной, при запуске ничего не происходит
Миниатюры
Замер времени для MergeSort  
0
440 / 432 / 159
Регистрация: 21.05.2016
Сообщений: 1,338
10.05.2017, 10:24 10
Цитата Сообщение от ElTonio Посмотреть сообщение
поставил единичку в коней имени переменной, при запуске ничего не происходит
Просто исправьте 1st на lst
0
757 / 306 / 190
Регистрация: 20.05.2016
Сообщений: 593
10.05.2017, 10:40 11
И, пожалуй, значение number измените на 1 на первых порах, а то, боюсь, не дождетесь
0
0 / 0 / 1
Регистрация: 21.09.2016
Сообщений: 62
10.05.2017, 18:35  [ТС] 12
Спасибо, все наконец-то заработало
0
10.05.2017, 18:35
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
10.05.2017, 18:35
Помогаю со студенческими работами здесь

Замер времени рисования
Доброго времени суток. Собственно задача состоит в том, чтобы измерить время за которой будет...

Замер времени вычисления
Предположим, я хочу определить время &quot;прокрутки&quot; цикла (или другого процесса). Я знаю два способа....

Осуществить замер времени for и while
Здравствуйте! Условие задачи: Написать программу выводящее на экран любое текстовое сообщение...

Три сортировки + замер времени
Суть задания такова здесь 3 метода сортировки Шелл,Пирамидальная и Прямое включение я новичок в...

Замер времени из разных методов
Здравствуйте, нужна помощь, есть два метода, нужно замерить время в первом, и остановить во втором...

Yslow замер времени отклика
Доброго времени суток! Возможно не в ту ветку, но больше не нашёл куда написать... у меня такой...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Как программировать под HCL Notes и создавать свои продукты на ее основе
InfoMaster 11.01.2025
HCL Notes (ранее известный как IBM Notes и Lotus Notes) представляет собой мощную платформу для разработки корпоративных приложений, которая сочетает в себе функции электронной почты, календаря,. . .
Как работать с SVN (Subversion)
InfoMaster 11.01.2025
Введение Система контроля версий является неотъемлемой частью современного процесса разработки программного обеспечения. Она обеспечивает управление изменениями в коде, позволяет отслеживать. . .
Использование GraphQL в JavaScript
InfoMaster 11.01.2025
Введение в GraphQL и его преимущества В современной разработке веб-приложений эффективный обмен данными между клиентом и сервером играет ключевую роль. GraphQL представляет собой язык запросов и. . .
Администрирован­­­­ие Git, продвинутые техники работы с Git
InfoMaster 11.01.2025
Основы управления репозиторием Эффективное управление Git-репозиторием требует глубокого понимания механизмов контроля доступа и инструментов администрирования. Рассмотрим ключевые аспекты. . .
Что такое HCL Notes и как с ним работать
InfoMaster 10.01.2025
HCL Notes (ранее известный как IBM Notes и Lotus Notes) представляет собой комплексную платформу для совместной работы и обмена информацией в корпоративной среде. Это многофункциональное решение,. . .
Как работать с Git из Windows и Visual Studio
InfoMaster 10.01.2025
Работа с Git в Windows Работа с Git в операционной системе Windows может быть осуществлена с помощью различных инструментов, каждый из которых обладает своими уникальными возможностями и. . .
Аналог оператора switch case в Python
InfoMaster 10.01.2025
Оператор switch case используется в программировании для выбора одного из нескольких вариантов исполнения кода. Однако в языке Python этот оператор отсутствует. Понимание аналогов switch case в. . .
Отличия абстрактного класса от интерфейса
InfoMaster 10.01.2025
В современной разработке программного обеспечения существуют два основных механизма реализации абстракции: абстрактные классы и интерфейсы. Эти инструменты, хотя и схожи в своей основной цели -. . .
Как работать в Git
InfoMaster 10.01.2025
Git — это одна из наиболее популярных систем контроля версий, которая активно используется разработчиками по всему миру. Она позволяет эффективно управлять изменениями в коде, координировать работу. . .
Реализация передвижения персонажа в Unity3d на C#
InfoMaster 10.01.2025
Реализация передвижения персонажа в Unity3D начинается с правильной настройки проекта. Этот этап критически важен для создания отзывчивого и плавного управления. Рассмотрим основные шаги для создания. . .
Docker: руководство для начинающих
InfoMaster 10.01.2025
В современном мире разработки программного обеспечения контейнеризация стала неотъемлемой частью процесса создания и развертывания приложений. Docker, как ведущая платформа контейнеризации, произвела. . .
Книги и учебные ресурсы по C#
InfoMaster 08.01.2025
Базовые учебники и руководства Одной из лучших книг для начинающих является "C# 10 и . NET 6 для начинающих" Эндрю Троелсена и Филиппа Джепикса . Книга последовательно раскрывает основные концепции. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru