Python — быстрая сортировка с использованием случайного элемента в качестве первого элементаPython

Программы на Python
Ответить
Anonymous
 Python — быстрая сортировка с использованием случайного элемента в качестве первого элемента

Сообщение Anonymous »

Я пытаюсь выполнить быструю сортировку на 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])
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»