about summary refs log tree commit diff
path: root/users/wpcarro/scratch/data_structures_and_algorithms/top-scores.py
diff options
context:
space:
mode:
Diffstat (limited to 'users/wpcarro/scratch/data_structures_and_algorithms/top-scores.py')
-rw-r--r--users/wpcarro/scratch/data_structures_and_algorithms/top-scores.py25
1 files changed, 25 insertions, 0 deletions
diff --git a/users/wpcarro/scratch/data_structures_and_algorithms/top-scores.py b/users/wpcarro/scratch/data_structures_and_algorithms/top-scores.py
new file mode 100644
index 0000000000..8e7b073dd8
--- /dev/null
+++ b/users/wpcarro/scratch/data_structures_and_algorithms/top-scores.py
@@ -0,0 +1,25 @@
+from collections import deque
+
+# list:
+# array:
+# vector:
+# bit-{array,vector}:
+
+
+def sort(xs, highest):
+    v = [0] * (highest + 1)
+    result = deque()
+
+    for x in xs:
+        v[x] += 1
+
+    for i, x in enumerate(v):
+        if x > 0:
+            result.appendleft(i)
+
+    return list(result)
+
+
+assert sort([37, 89, 41, 100, 65, 91, 53],
+            100) == [100, 91, 89, 65, 53, 41, 37]
+print("Tests pass!")