Проблема с реализацией сортировки сегментов в PythonPython

Программы на Python
Anonymous
Проблема с реализацией сортировки сегментов в Python

Сообщение Anonymous »

Я пытаюсь реализовать алгоритм сортировки сегментов с помощью Python. Моя текущая реализация, похоже, имеет проблему при работе с целочисленными значениями вне диапазона от 0 до 1. В частности, вычисление индекса для размещения сегментов приводит к тому, что индекс выходит за пределы диапазона количества сегментов.это мой код:

Код: Выделить всё

def bucketsort(array):
bucket = []

for i in range (len(array)):
bucket.append([])

for j in array:
index_b = int(10*j)
bucket[index_b].append(j)

for i in range(len(array)):
bucket[i] = sorted(bucket[i])

k = 0
for i in range(len(array)):
for j in range(len(bucket[i])):
array[k] = bucket[i][j]
k += 1
return array

array = [12, 84, 64, 65, 94, 46, 99]
print("Sorted array is: ", bucketsort(array))
Когда я запускаю этот код с массивом [12, 84, 64, 65, 94, 46, 99], отображается ошибка IndexError из-за того, что рассчитанный индекс сегмента выходит за пределы допустимого диапазона.< /p>
Как я могу изменить свою реализацию для обработки общего случая целочисленных массивов?

Подробнее здесь: https://stackoverflow.com/questions/785 ... -in-python

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