ich sitze jetzt schon etwas länger an diesem Problem. Grundsätzlich die Sortierung hab ich verstanden, allerdings weiß ich nicht genau, warum sich meine Variable "LISTE" auch ändert, wenn ich die Funktion bubblesort aufrufe und das Ergebnis in der Variable arrBubbleSort speichere.
Soweit ich es bis jetzt gelesen habe, gibt es ja dann Pointer zu diesen Array, wie kann ich das verhindern und quasi ein neues Array erzeugen?
Am Ende brauche ich das originale Array, nämlich für die nächste Funktion, insertionSort.
Hier einmal der Code:
Code: Alles auswählen
from numpy import random
import time
def getRandomIntList(listSize):
return random.randint(100, size=(listSize))
def bubblesort(arr):
startTime = time.time()
for i in range(0, len(arr)-1):
for j in range(0, len(arr)-i-1):
if arr[j] > arr[j+1]:
cache = arr[j]
arr[j] = arr[j+1]
arr[j+1] = cache
endTime = time.time()
print("Benötigte Zeit: " + str(endTime-startTime) + " Sekunden\n")
return arr
def insertionSort(arr):
for i in range(1, len(arr)):
key = arr[i]
j = i - 1
while j >= 0 and key < arr[j]:
arr[j+1] = arr[j]
j -= 1
arr[j+1] = key
return arr
LISTE = getRandomIntList(10)
print("Origanle liste: \n" + str(LISTE))
arrBubbleSort = bubblesort(LISTE)
print("Origanle liste: \n" + str(LISTE))
arrInsertionSort = insertionSort(LISTE)
print("Bubblesort: \n" + str(arrBubbleSort))
print("arr: \n" + str(LISTE))
print("Insertionsort: \n" + str(arrInsertionSort))