0 / 0 / 0
Регистрация: 23.11.2012
Сообщений: 14

Как сделать свою quickSort?

19.10.2013, 22:19. Показов 1445. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
def qs(mass, n):
  if n in (0, 1):
    return
  lower_part=[n]
  higher_part=[n]
  low=0
  high=0
  for i in my_range(1, n, 1):
    if mass[i] in range (0, mass[1]):
      higher_part.append(mass[i])
      high+=1
    else:
      lower_part.append(mass[i])
      low+=1
  qs(higher_part, high)
  qs(lower_part, low)
  for i in range (1, high+1):
    mass[i]=higher_part[i]
  for i in range (1, low+1):
    mass[high+i]=lower_part[i]
  return
Начинаю изучать Питон, и вот решил написать быструю сортировку, однако из всего массива местами меняются всего пара элементов. в чем проблема?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
19.10.2013, 22:19
Ответы с готовыми решениями:

Как сделать, чтобы при движении планеты по кругу, она рисовала за собой свою орбиту сплошной линией?
Tkinter. Как сделать чтобы при движении планеты по кругу, она рисовала за собой свою орбиту сплошной линией ?

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

Как сделать свою переменну в С++
Мне нужно подсчитывать очень большие числа, порядка 10^100000, и нужно создать свою переменную как можно это сделать?

5
165 / 164 / 23
Регистрация: 23.02.2011
Сообщений: 347
22.10.2013, 23:43
Код совсем непонятный
1) какой смысл этого условия? mass[i] in range (0, mass[1]
2) что за my_range?
0
0 / 0 / 0
Регистрация: 23.11.2012
Сообщений: 14
28.10.2013, 00:06  [ТС]
1) предсортировка, все значения заведомо неотрицательные
2)забыл сменить на range(1, n+1)
0
26 / 26 / 6
Регистрация: 19.10.2012
Сообщений: 131
28.10.2013, 09:20
Цитата Сообщение от Algiz Посмотреть сообщение
Python
1
mass[i] in range (0, mass[1])
генерировать целый список для проверки наличия там числа, отличающегося или равного 0? Мне кажетя это странным. Проще ведь сравнить.
А что такое n? Я выбрал 14 и получил IndexError. Всегда верил, что числа можно сортировать только по возрастанию или убыванию.
0
0 / 0 / 0
Регистрация: 23.11.2012
Сообщений: 14
30.10.2013, 21:16  [ТС]
вот переделанный код, но тем не менее все еще не корректно работающий
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
def qs(mass):
  n=len(mass)
  if n == 0 or n== 1:
    return
  lower_part=[]
  higher_part=[]
  for i in range(2, n):
    if mass[i] < mass[1]:
      higher_part.append(mass[i])
    else:
      lower_part.append(mass[i])
  qs(higher_part)
  higher_part.append(mass[1])
  qs(lower_part)
  for i in range (1, len(higher_part)):
    mass[i]=higher_part[i]
  for i in range (1, len(lower_part)):
    mass[len(higher_part)+i]=lower_part[i]
  return
0
28 / 21 / 8
Регистрация: 05.08.2012
Сообщений: 108
01.11.2013, 11:55
Python
1
2
3
4
5
6
7
8
9
base = mass[0]
for x in mass:
    if x < base:
        lower_part.append(x)
    if x == base:
        eq_part.append(x)
    if x > base:
        higher_part.append(x)
return qs(lower_part)+qs(eq_part)+qs(higher_part)
что-то вы намудрили. еще один список равных значений, а разобрать по спискам на мой вкус так проще всего. + для оббъединения возвращаемых списков
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
01.11.2013, 11:55
Помогаю со студенческими работами здесь

Как сделать свою микросхему?
Как построить свою микросхему? Самую простую, вот я не знаю совершено ничего, и даже не знаю что почитать... Например led это...

Как сделать свою команду?
Как сделать чтобы можно было открыть терминал и просто писать название моей программы и она запускалась? Как, например, пишешь...

Как сделать свою ОС на Assembler?
Как сделать свою ОС на Assembler? Здравствуйте! Я загорелся желанием (И пинком со стороны) создать свою ОС! Мне очень нравится псевдо...

как сделать свою кнопку
для курсового проекта мне нужно внедрить браузер в форму и сделать пару кнопок(типа вперед,назад) чтобы все работало,это я сделал с помощью...

Как сделать свою лицензию?
как сделать свою лицензию на свои программы? Добавлено через 8 минут и как сделать поставить serial в inno setup и в...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

Новые блоги и статьи
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определенном условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru