def count(a):
res = []
counting = [0] * (max(a) - min(a) + 2)
for i in a:
counting[i] += 1
for i in range(min(a), max(a) + 1):
for j in range(counting[i]):
res.append(i)
return res
a = [20, 5000, 10000, -1000, 0, -30]
count(a)
def bubble(a):
n = len(a)
for i in range(n):
for j in range(0, n - i - 1): #[0, n-2]
if a[j] > a[j+1]:
a[j+1], a[j] = a[j], a[j+1]
def insertion(a):
n = len(a)
for i in range(n - 1):
m = a[i + 1]
pos = 0
while a[pos] < m:
pos += 1
for j in range(i, pos - 1, -1):
a[j + 1] = a[j]
a[pos] = m
def selection(a):
for i in range(n - 1):
for j in range(i+1, n):
if a[j] < a[i]:
a[i], a[j] = a[j], a[i]