diff --git a/Aufgabe02.py b/Aufgabe02.py index a909e1062ec9f7f121941cc1732aa4c20c413896..7d0f6f08e94fe32832cb5c7b833f1742263f2c30 100644 --- a/Aufgabe02.py +++ b/Aufgabe02.py @@ -74,7 +74,7 @@ def InsertionSort(array): return sorted_array -def CountingSort(array): +def CountingSort(array, k=None): '''Sort the array by counting the ocjence of each element in the array. Parameters @@ -87,4 +87,22 @@ def CountingSort(array): sorted_array: a sorted copy of the array ''' - return + if k is None: + k = max(array) + + key_array = [0]*(k+1) + + # Zählen der Elemente + for i in array: + key_array[i] += 1 + + sorted_array = [0]*len(array) + + i = 0 + for j, k in enumerate(key_array): + while k > 0: + sorted_array[i] = j + i += 1 + k -= 1 + + return sorted_array