def ya_dict(word_tr):
yandexkey = "dict.1.1.xxxxx"
lang = "en-ru"
text = word_tr
uri = f"https://dictionary.yandex.net/api/v1/dicservice.json/lookup?key={yandexkey}&lang={lang}&text={text}"
res = json.loads(requests.post(uri).text)
[print(tr['text']) for tr in res['def'][0]['tr']]
SELECT t.id,
t.master_theme,
t.theme,
COUNT(DISTINCT post.theme_id) as post_theme,
COUNT(DISTINCT video.theme_id) as video_theme,
COUNT(DISTINCT subscribe_theme.theme_id) as subscribe_theme
SELECT DISTINCT
users.`users_id`,
users.`name`,
user_dolg.`date`,
users.`users_id`,
SUM(user_dolg.hours) AS sub_hours
Также тут не только середины искать нужно, но и элемент который в середине (чтобы передать его в функцию рекурсивно), а это еще один проход.
Кроме этого было требование сортировать на месте (т.е. не выделять дополнительную память),а значит проходить придется по исходному списку во всех рекурсивных вызовах и чем дальше к правой стороне списка, тем больше элементов нужно будет просмотреть.
Подсчитайте сколько нужно проходом во списку, чтобы его отсортировать.
Тут выходит O(n*n), а не n log n.
quicksort заточен на работу с индексами, а тут их нет, тут только значения элементов списка.
А поиск элемента в списке по значению, если одинаковых элементов в списке несколько может давать не правильные границы подсписков.