Dies ist mein Code für die Bucket-Sortierung in Python.Was macht diese Bucket-Sortimplementierung?
from random import randrange
def insertion_sort(aList):
for i in range(1, len(aList)):
for j in range(i, 0, -1):
if aList[j] < aList[j-1]:
aList[j], aList[j-1] = aList[j-1], aList[j]
return aList
def bucket_sort(aList):
buckets = [[]] * len(aList)
for index, value in enumerate(aList):
buckets_index = value * len(aList) // (max(aList) + 1)
buckets[buckets_index].append(value)
answer = []
for bucket in buckets:
answer.extend(insertion_sort(bucket))
# answer += insertion_sort(bucket)
print(buckets[0])
print("\n")
# return answer
aList = [randrange(10) for _ in range(100)]
print(aList)
print("\n")
answer = bucket_sort(aList)
#print(answer)
Was passiert? Wenn ich den Code ausführe, finde ich immer, dass die erste Liste in Buckets bereits sortiert ist und die anderen Listen in Buckets alle Kopien davon sind. Benötige ich die Einfügesortierung für jede Liste? Wofür würde ich die Variable "answer" verwenden ?!
Ich verlasse mich hauptsächlich auf this visualization.
Frage ist nicht klar .. was Ihre Anforderung ist –
wäre hilfreich für eine nicht bucket Benutzer zu sehen, wie Sie es importieren und welche Eimer tatsächlich ist. – Torxed
Ich denke, ich weiß, was Ihr Problem ist, aber es wäre nett, wenn Sie etwas Ausgabe zeigen könnten, und was Sie erwarten, dass die Ausgabe ist. – ymbirtt