Я пытаюсь выполнить быструю сортировку на Python, где он извлекает случайное целое число вместо первого элемента, сравнивает значения слева и справа и сортирует как таковое. Мои методы разделения и быстрой сортировки уже работают (я протестировал и отсортировал), но я не могу понять, что делать, чтобы сначала взять случайное целое число.
На данный момент я импортировал свой случайный пакет и попробовал что-то под названием «random.choice()». Проблема в том, что для этого требуется только первый элемент, а не все из них. После этого мне нужно вызвать функцию разделения (как это реализовано в быстрой сортировке. И последняя часть: мне нужно использовать следующий псевдокод:
if (numItemsInSubArray > 16) then swap a[low] and a[random index between high and low];
Я опубликую свой код ниже, любые мысли помогут, спасибо.
def quicksort3(array, low, high):
if high > low:
index = partition(array, low, high)
quicksort3(array, low, index - 1)
quicksort3(array, index + 1, high)
# attempt to return first element in array, followed by quicksorted array
random.choice(array)
if (len(subarray) > 16):
# swap a[low] and a[random index (such as high?) between high and low];
array[low], array[high] = array[high], array[low]
def partition(array, low, high):
firstitem = array[low]
j = low
for i in range(low+1, high+1):
if array < firstitem:
j+=1
array[j], array = array, array[j]
index = j
array[low], array[index] = array[index], array[low]
return index
array = [10, 3, 4, 8, 1, 7, 0, 13]
quicksort3(array, 0, len(array)-1)
for j in range(len(array)):
print ("%d" %array[j])
Python — быстрая сортировка с использованием случайного элемента в качестве первого элемента ⇐ Python
Программы на Python
1774585906
Anonymous
Я пытаюсь выполнить быструю сортировку на Python, где он извлекает [b]случайное целое число[/b] вместо первого элемента, сравнивает значения слева и справа и сортирует как таковое. Мои методы разделения и быстрой сортировки уже работают (я протестировал и отсортировал), но я не могу понять, что делать, чтобы сначала взять случайное целое число.
На данный момент я импортировал свой случайный пакет и попробовал что-то под названием «random.choice()». Проблема в том, что для этого требуется только первый элемент, а не все из них. После этого мне нужно вызвать функцию разделения (как это реализовано в быстрой сортировке. И последняя часть: мне нужно использовать следующий псевдокод:
if (numItemsInSubArray > 16) then swap a[low] and a[random index between high and low];
Я опубликую свой код ниже, любые мысли помогут, спасибо.
def quicksort3(array, low, high):
if high > low:
index = partition(array, low, high)
quicksort3(array, low, index - 1)
quicksort3(array, index + 1, high)
# attempt to return first element in array, followed by quicksorted array
random.choice(array)
if (len(subarray) > 16):
# swap a[low] and a[random index (such as high?) between high and low];
array[low], array[high] = array[high], array[low]
def partition(array, low, high):
firstitem = array[low]
j = low
for i in range(low+1, high+1):
if array[i] < firstitem:
j+=1
array[j], array[i] = array[i], array[j]
index = j
array[low], array[index] = array[index], array[low]
return index
array = [10, 3, 4, 8, 1, 7, 0, 13]
quicksort3(array, 0, len(array)-1)
for j in range(len(array)):
print ("%d" %array[j])
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия